2012-03-10 34 views
7

我想學習很多python在Windows上,包括安裝幾個包,但每次我調用python setup.py安裝我有-mno -cygwin gcc的問題。Python:-mno -cygwin

我已經閱讀過很多文章,看起來他們希望這些單獨的軟件包能夠在自己的構建中等待修復。

任何人都可以提供給我一個gcc版本,我可以安裝,仍然支持-mno -cygwin,所以我可以繼續研究我想專注的領域?

謝謝!

+1

已棄用的-mno-cygwin選項已在gcc 4.7.0中刪除。看到[這個問題](http://stackoverflow.com/questions/6034390/compiling-with-cython-and-mingw-produces-gcc-error-unrecognized-command-line-o)瞭解更多詳情。 – 2012-12-06 19:26:39

回答

18

我也有這個問題,這是Python代碼中的一個錯誤。我發現修復它的唯一方法是編輯文件C:\Python27\Lib\distutils\cygwinccompiler.py

在此文件中,您必須刪除每個發生的-mno-cygwin

對於通過MinGW安裝的GCC也是如此。

+0

爲了澄清這一點,在'Mingw32CCompiler .__ init__'中應該只有四次出現。修復應該是可靠的。 – brianmearns 2013-10-17 17:51:15

1

我已經在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。