编译pygraphviz:无法识别的命令行选项'-mno-cygwin'

时间:2012-11-27 20:08:37

标签: python mingw32 pygraphviz

在Windows 7上,当我尝试编译pygraphviz时,我运行

    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:错误:无法识别的命令行选项' -mno-cygwin'   错误:命令' gcc'退出状态1失败

' -mno-cygwin'来自(哪里?通过pygraphviz-1.1目录进行greping显示没有出现" no-cygwin"。

2 个答案:

答案 0 :(得分:18)

请参阅此答案:https://stackoverflow.com/a/6035864/1516291

简而言之,您可能需要修改python安装目录中的distutils\cygwinccompiler.py以删除-mno-cygwin的痕迹。

答案 1 :(得分: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。