Компиляции с помощью MinGW на Cython и производит на GCC: ошибка: нераспознаваемый параметр командной строки '-мно-с Cygwin'



Я пытаюсь скомпилировать расширение python с cython в win 7 64-бит с помощью mingw (64-бит).

Я работаю с Python 2.6 (активный Python 2.6.6) и с адекватными distutils.cfg файл (установка mingw в качестве компилятора)



при выполнении



> C:Python26programasCython>python setup.py build_ext --inplace


Я получаю сообщение об ошибке, что gcc не имеет опции-mno-cygwin:



> C:Python26programasCython>python setup.py build_ext --inplace
running build_ext
skipping 'hello2.c' Cython extension (up-to-date)
building 'hello2' extension
C:mingwbingcc.exe -mno-cygwin -mdll -O -Wall -IC:Python26include -IC:Python26PC -c hello2.c -o buildtemp.win-amd64-2.6Releasehello2.o
gcc: error: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1


gcc это:



C:>gcc --version
gcc (GCC) 4.7.0 20110430 (experimental)
Copyright (C) 2011 Free Software Foundation, Inc.


как я могу это исправить?

520   4  

4 ответов:

похоже, что GCC 4.7.0 наконец удалил устаревший -mno-cygwin вариант, но distutils еще не догнал его. Либо установите немного более старую версию MinGW, либо отредактируйте distutils\cygwinccompiler.py в папке Python, чтобы удалить все экземпляры -mno-cygwin.

в процессе решения этих и следующих проблем я нашел, я написал рецепт в этой теме. Я воспроизвожу его здесь, если это может быть полезно для других:


пошаговый рецепт для компиляции 64-битных расширений cython с python 2.6.6 с компилятором mingw в win 7 64-бит

установить компилятор mingw
1) Установите tdm64-gcc-4.5.2.exe для 64-битной компиляции

применить патч питон.h
2) изменить python.h in C:\python26\include как указано в http://bugs.python.org/file12411/mingw-w64.patch

изменить distutils
Edit 2013: Примечание, чем в python 2.7.6 и 3.3.3-mno-cygwin был окончательно удален, поэтому Шаг 3 можно пропустить.

3) исключите все параметры-mno-cygwin FOM звонок к gcc в Класс Mingw32CCompiler в Python26\Lib\distutils\cygwinccompiler.py
4) в том же модуле измените get_msvcr (), чтобы вернуть пустой список вместо ['msvcr90'], когда msc_ver = = '1500'.

произведите libpython26.файл (не входит в 64-битный python)
Edit 2013: следующие шаги 5-10 можно пропустить, загрузив и установив libpython26.а от gohlke.

5) получить gendef.exe из mingw-w64-bin_x86_64- mingw_20101003_sezero.застежка-молния (гендеф.exe не доступен в дистрибутиве tmd64. Другой решение заключается в компиляции gendef из исходного кода...)
6) Копия python26.dll (находится в C\windows\system32) для пользователя каталог (C:\Users\myname)
7) произведите python26.def файл с:

gendef.exe C:\Users\myname\python26.dll

8) переместить python.Def файл создается (находится в папке, откуда гендеф был выполняется) в каталог пользователя
9) произведите libpython.а с:

dlltool-v --dllname python26.библиотеки DLL --деф C:\Users\myname \python26.def --output-lib C:\Users\myname\libpython26.а

10) переместить созданный libpython26.а к C:\Python26\libs

производить свои .pyd extension
11) создайте тест hello.pyx файл и a setup.py файл, как указано в на Cython учебник (http://docs.cython.org/src/quickstart/build.html)
12) составляет с

python setup.py build_ext --inplace

готово!

эта ошибка теперь исправлена в Python 2.7.6 release candidate 1.

фиксация исправления здесь.

разрешенный поток отслеживания проблем здесь.

попробуйте это . Это действительно работает для ошибки
https://github.com/develersrl/gccwinbinaries

Comments

    Ничего не найдено.