2012-03-10 11 views
7

Próbuję nauczyć się wielu pythonów w oknach, a to obejmuje instalowanie kilku pakietów, jednak za każdym razem, gdy uruchamiam python setup.py install mam problem z -mno -cygwin dla gcc.Python: -mno -cygwin

Przeczytałem już wiele artykułów i wydaje się, że chcą, aby te indywidualne pakiety czekały na poprawkę na ich własnych kompilacjach.

Czy ktoś może po prostu podać mi wersję gcc, którą mogę zainstalować, która nadal obsługuje -mno -cygwin, więc mogę dalej studiować obszary, na których chciałbym się skupić?

dziękuję!

+1

Zdezaktualizowana opcja -mno-cygwin została usunięta w gcc 4.7.0. Aby uzyskać więcej informacji, zobacz [to pytanie] (http://stackoverflow.com/questions/6034390/compiling-with-cython-and-mingw-produces-gcc-error-unrecognized-command-line-o). –

Odpowiedz

18

Też miałem ten problem, i to jest błąd w kodzie Pythona. Jedynym sposobem na naprawienie tego problemu była edycja pliku C:\Python27\Lib\distutils\cygwinccompiler.py.

W tym pliku należy usunąć wszystkie wystąpienia -mno-cygwin.

To samo dotyczy GCC instalowanego przez MinGW.

+0

Aby to wyjaśnić, powinny występować tylko cztery wystąpienia w 'Mingw32CCompiler .__ init__'. Poprawka powinna być niezawodna. – brianmearns

1

miałem ten sam problem, który został ustalony przez zastąpienie wystąpień ciągu "-mno-cygwin" z "" w C:\Python27\Lib\distutils\cygwinccompiler.py

tj

kod oryginalny:

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)) 

Zaktualizowany kod:

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)) 

Jakiego rodzaju jest kompilator GCC? posługiwać się? Nie dostaniesz tego problemu, jeśli używasz GCC 3.4.4. W przeciwnym razie musisz zastąpić ciąg "-mno-cygwin" pustymi cytatami, jak wspomniano powyżej, szczególnie w GCC 4.3.7.