2012-03-10 2 views
7

Я пытаюсь изучить много python на окнах и включает в себя установку нескольких пакетов, однако каждый раз, когда я вызываю python setup.py install, у меня проблема с -mno -cygwin для gcc.Python: -mno -cygwin

Я уже прочитал много статей, и кажется, что они хотят, чтобы эти отдельные пакеты дождались исправления на своих собственных сборках.

Может ли кто-нибудь просто предоставить мне версию gcc, которую я могу установить, которая все еще поддерживает -mno -cygwin, поэтому я могу продолжить изучение областей, на которых я хотел бы сфокусироваться?

спасибо!

+1

В gcc 4.7.0 исключена опция -mno-cygwin. Подробнее см. [Этот вопрос] (http://stackoverflow.com/questions/6034390/compiling-with-cython-and-mingw-produces-gcc-error-unrecognized-command-line-o). –

ответ

18

У меня тоже была эта проблема, и это ошибка в коде Python. Единственное, что я нашел, чтобы исправить это, - это отредактировать файл C:\Python27\Lib\distutils\cygwinccompiler.py.

В этом файле необходимо удалить все возможные ошибки -mno-cygwin.

То же самое касается GCC, установленного через MinGW.

+0

Чтобы уточнить это, должно быть только четыре его появления в 'Mingw32CCompiler .__ init__'. Исправление должно быть надежным. – brianmearns

1

У меня была та же проблема, которая была исправлена ​​путем замены экземпляров строки "-mno-Cygwin" с "" в C:\Python27\Lib\distutils\cygwinccompiler.py

т.е.

Оригинальный код:

self.set_executables(compiler='gcc -mno-cygwin -O -Wall', 
         compiler_so='gcc -mno-cygwin -mdll -O -Wall', 
         compiler_cxx='g++ -mno-cygwin -O -Wall', 
         linker_exe='gcc -mno-cygwin', 
         linker_so='%s -mno-cygwin %s %s' 
            % (self.linker_dll, shared_option, 
             entry_point)) 

Обновленный код:

self.set_executables(compiler='gcc "" -O -Wall', 
         compiler_so='gcc "" -mdll -O -Wall', 
         compiler_cxx='g++ "" -O -Wall', 
         linker_exe='gcc ""', 
         linker_so='%s "" %s %s' 
            % (self.linker_dll, shared_option, 
             entry_point)) 

Какую версию компилятора GCC вы используете ? Вы не получите эту проблему, если используете GCC 3.4.4, иначе вам нужно заменить строку «-mno-cygwin» пустыми кавычками, как указано выше, особенно для GCC 4.3.7.

Смежные вопросы