2012-11-27 108 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。

相关问题