2012-11-27 15 views
17

In Windows 7, quando si cerca di compilare pygraphviz, corroCompilazione pygraphviz: opzione della riga di comando non riconosciuto '-mno-cygwin'

python setup.py build -c mingw32 

ottengo

C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall "-IC:\Program Files (x86)\Graphv iz 2.28\include\graphviz" -Ic:\Python27\include -Ic:\Python27\PC -c pygraphviz/g raphviz_wrap.c -o build\temp.win-amd64-2.7\Release\pygraphviz\graphviz_wrap.o cc1.exe: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' failed with exit status 1

Dove è che '-mno -cygwin 'che viene? Greping attraverso la directory pygraphviz-1.1 non mostra occorrenze di "no-cygwin".

risposta

18

Vai a questa risposta: https://stackoverflow.com/a/6035864/1516291

In breve, potrebbe essere necessario modificare distutils\cygwinccompiler.py nell'installazione dir pitone per rimuovere le tracce di -mno-cygwin.

+1

È importante notare che questa opzione esiste nel file setup.py di alcuni pacchetti, ad esempio che "pip install cx_Oracle", ad esempio, non riuscirà con lo stesso messaggio. Il file sorgente deve essere scaricato in modo che setup.py possa essere modificato. – foszter

3

Ho avuto lo stesso problema che è stato risolto sostituendo le istanze della stringa "-mno-Cygwin" con "" nel C:\Python27\Lib\distutils\cygwinccompiler.py

cioè Codice originale:

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

codice aggiornato:

Quale versione del compilatore GCC usi? Non si otterrà questo problema se si utilizza GCC 3.4.4 altrimenti è necessario sostituire la stringa "-mno-cygwin" con virgolette vuote come sopra menzionato, specialmente per GCC 4.3.7.