编译 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'的主要内容,如果未能解决你的问题,请参考以下文章

g++:错误:无法识别的命令行选项“-mt”

R gputools:gcc:错误:无法识别的命令行选项'-Wp'

g ++错误无法识别的命令行选项

gcc mismatched-tags 选项给出“无法识别的命令行选项”

c++:错误:无法识别的命令行选项“-std=c++17”

gcc:错误:无法识别的命令行选项“-mfpu=neon-vfpv4”