Компиляция C общих библиотек для Python3 Windows - PullRequest
0 голосов
/ 09 ноября 2018

Я разрабатывал библиотеку C для управления данными и систему типов на основе монад. Все это работает хорошо и прекрасно, однако я хотел бы подключить его к Python, чтобы я мог управлять некоторым GUI и другими подобными вещами.

Вот проблема;

Создание разделяемой библиотеки C с использованием gcc, содержащего библиотеку Python3, и подключение ее к Python. Кажется, я не понимаю ни грамматики, ни требований к компиляции из командной строки (не стесняйтесь упомянуть инструмент, облегчающий эту задачу)

gcc Информация

Использование встроенных спецификаций. COLLECT_GCC = НКА COLLECT_LTO_WRAPPER = C: / TDM-GCC-64 / бен /../ libexec / GCC / x86_64-W64-mingw32 / 5.1.0 / LTO-wrapper.exe Цель: x86_64-w64-mingw32 Настраивается с помощью: ../../../src/gcc-5.1.0/configure --build = x86_64-w64-mingw32 --enable-target = all --enable-languages ​​= ada, c, c ++, fortran , lto, objc, obj-c ++ --enable-libgomp --enable-lto --enable-graphite --enable-cxx-flags = -DWINPTHREAD_STATIC --disable-build-with-cxx --disable-build-poststage1- with-cxx --enable-libstdcxx-debug --enable-threads = posix --enable-версия-определенная-runtime-libs --enable-полностью-динамическая-строка --enable-libstdcxx-threads --enable-libstdcxx- время --with-gnu-ld --disable-werror --disable-nls --disable-win32-registry --prefix = / mingw64tdm --with-local-prefix = / mingw64tdm --with-pkgversion = tdm64-1 --with-bugurl = http://tdm -gcc.tdragon.net / ошибки Модель потока: posix gcc версия 5.1.0 (tdm64-1)

Вот мой .c

#include <Python.h>
#include <stdio.h>


extern float testfloat (){
    return 2.0;
}

extern int testint(){
   return 2;
}

int main(){
    return 0;
}

Мой .h для заголовков

extern float testfloat ();
extern int testint ();

и этот .Bat используется для компиляции на gcc

@ECHO OFF
ECHO.
ECHO This is a compilation bat
ECHO.
gcc -fPIC -shared -o testcode.so -I...\AppData\Local\Programs\Python\Python37\include -L...\AppData\Local\Programs\Python\Python37\libs testcode.c -lpython37 
gcc -shared -o libtestcode.so testcode.c
PAUSE
CLS
EXIT

Я обычно не использую stackoverflow, поэтому простите за отсутствие формальности в этом посте

...