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 目录搜索显示没有出现“no-cygwin”。

4

2 回答 2

18

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

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

于 2012-12-12T16:14:34.060 回答
3

我遇到了同样的问题,已通过将字符串“-mno-cygwin”的实例替换为“”中的“”来解决C:\Python27\Lib\distutils\cygwinccompiler.py

即原始代码:

    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。

于 2014-01-24T10:11:12.160 回答