编译 pygraphviz:无法识别的命令行选项 '-mno-cygwin'
Posted
技术标签:
【中文标题】编译 pygraphviz:无法识别的命令行选项 \'-mno-cygwin\'【英文标题】:Compiling pygraphviz: Unrecognized command line option '-mno-cygwin'编译 pygraphviz:无法识别的命令行选项 '-mno-cygwin' 【发布时间】:2012-11-15 13:03:07 【问题描述】:在 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”。
【问题讨论】:
【参考方案1】:看到这个答案:https://***.com/a/6035864/1516291
简而言之,您可能需要在 python 安装目录中修改 distutils\cygwinccompiler.py
以删除 -mno-cygwin
的痕迹。
【讨论】:
重要的是要注意这个选项存在于一些包的 setup.py 文件中,例如,'pip install cx_Oracle' 将失败并显示相同的消息。需要下载源文件才能编辑setup.py。【参考方案2】:我遇到了同样的问题,已通过在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。
【讨论】:
以上是关于编译 pygraphviz:无法识别的命令行选项 '-mno-cygwin'的主要内容,如果未能解决你的问题,请参考以下文章
R gputools:gcc:错误:无法识别的命令行选项'-Wp'