【问题标题】: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”。

【问题讨论】:

    标签: python mingw32 pygraphviz


    【解决方案1】:

    看到这个答案:https://stackoverflow.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。

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 2017-04-09
      • 1970-01-01
      相关资源
      最近更新 更多