2012-11-27 146 views
17

在Windows 7上,試圖編譯pygraphviz的時候,我跑編譯pygraphviz:無法識別的命令行選項 '-mno-cygwin的'

python setup.py build -c mingw32 

我得到

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

哪裏是「-mno -cygwin'來自哪裏?通過pygraphviz-1.1目錄顯示沒有出現「no-cygwin」。

回答

18

看到這個答案:https://stackoverflow.com/a/6035864/1516291

總之,你可能需要修改distutils\cygwinccompiler.py在你的Python安裝目錄刪除的-mno-cygwin痕跡。

+1

需要注意的是,這個選項存在於幾個軟件包的setup.py文件中,例如,'pip install cx_Oracle'將失敗並顯示相同的消息。源文件需要下載,以便可以編輯setup.py。 – foszter

3

我已經在C:\Python27\Lib\distutils\cygwinccompiler.py

即 原始代碼被固定用「替換字符串的情況下,「-mno-cygwin的」」同樣的問題:

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。

相關問題