首页 文章

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

提问于
浏览
17

在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 回答

  • 18

    看到这个答案:https://stackoverflow.com/a/6035864/1516291

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

  • 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 .

相关问题