Кросс-компиляция расширения Python из Linux в Win с использованием MingW - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь выполнить кросс-компиляцию программного обеспечения на компьютере Linux, ориентированном на систему Windows, с использованием Mingw.

По факту компиляции программного обеспечения создается расширение Python, и здесь возникают проблемы:

Когда я запускаю команду, начинающую выполнение создания расширения:

python setup.py build_ext --compiler=mingw32

Это приводит к выполнению следующей команды:

gcc -mdll -O -Wall <options and paths>
cc: unrecognized option `-mdll'

В основном это происходит из-заДело в том, что mdll является опцией, поддерживаемой gcc только в версии "windows".Это заставило меня подумать, что проблема в том, что опция --compiler=mingw32 сообщает python, что мы находимся в системе Win.

Однако я попытался запустить ту же самую команду, используя мой компилятор Mingw:

/usr/bin/mingw32-gcc -mdll -O -Wall -DSWIG=1 <options and path>
In file included from /usr/local/python-2.7.13/include/Python.h:58:0,
                 from mathsat_python_wrap.c:125:
/usr/local/python-2.7.13/include/pyport.h:351:24: fatal error: sys/select.h: No such file or directory
 #include <sys/select.h>
                        ^
compilation terminated.

Как видите, проблема в том, что sys / socket.h является заголовком POSIX / SUS.MinGW создан для сборки исполняемых файлов WinAPI.Следовательно, проблема заключается в том, что Python, используемый для сборки этого расширения, является версией для Unix (был скомпилирован и для Linux).

У кого-нибудь есть какие-либо предложения по этому поводу?

...