【问题标题】:-mno-cygwin : gcc building Mercurial (Windows 2000)-mno-cygwin : gcc 构建 Mercurial (Windows 2000)
【发布时间】:2012-02-13 12:38:06
【问题描述】:

因为 Mercurial 安装程序无法在旧的 Windows 2000 系统上运行,所以我尝试从源代码构建它。它抱怨 C 编译器无法识别选项 -mno-cygwin。我的 gcc 版本是 4.6.1。而MinGw只有两个月大。

按照以下步骤操作:https://www.mercurial-scm.org/wiki/BuildingOnWindows

F:\mercurial-2.0.2>python setup.py build
running build
running build_mo
warning: hgbuildmo: could not find msgfmt executable, no translations will be built

running build_py
package init file 'mercurial\__init__.py' not found (or not a regular file)
package init file 'mercurial\__init__.py' not found (or not a regular file)
running build_ext
building 'mercurial.base85' extension
f:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -If:\python27\include 
-If:\python27\PC -c mercurial/base85.c -o build\temp.win32-2.7\Release\mercurial\base85.o
**cc1.exe: error: unrecognized command line option '-mno-cygwin'**
error: command 'gcc' failed with exit status 1

【问题讨论】:

  • 尝试安装新版本的 MinGW(如果在 Win2K 上仍然有效)。

标签: c gcc mercurial


【解决方案1】:

来自comment by a TDM-GCC MinGW distro developer

从 4.6 系列开始,GCC 不再接受许多无法识别的选项 或旗帜。 TDM-GCC 从未“支持”-mno-cygwin;现在,它将 抱怨它。这也适用于 libtool 标志,例如 “-no-undefined”。

因此,您可能必须使用稍旧的 GCC 版本,它会忽略无意义的选项,或者修复构建脚本,使其不使用该标志(无论如何,这对于 MinGW 编译器来说永远都不需要)。

作为后续说明,从 GCC 4 开始,Cygwin 编译器似乎停止支持 -mno-cygwinhttp://www.cygwin.com/ml/cygwin/2009-03/msg00802.html

所以几年来这个选项或多或少没用。

【讨论】:

  • 嗯,我在 mercurial 源代码树中找不到它的引用
  • 我认为您需要查看“Distutils”配置文件 - 信息的起点在这里:docs.python.org/install/index.html#inst-config-files 但我认为您需要查看实际的配置文件和/或“分发 Python 模块”手册的“参考”部分。
  • @ScrollerBlaster:查看安装了 Python 发行版的 Lib\distutils\cygwincompiler.py 脚本。看起来这就是 -mno-cygwin 选项的位置。
  • @Micheal 是的,谢谢。我已经修复了编译器 python 代码并构建了优化版本。现在转移到一个新的问题! stackoverflow.com/questions/8935063/…>
【解决方案2】:

在运行“python setup.py build”之前不要忘记这一步?

如果使用 mingw,则需要创建一个 setup.cfg 来指导 setuptools 使用它:

cd mercurial
echo [build] > setup.cfg
echo compiler=mingw32 >> setup.cfg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2016-05-06
    • 2011-08-27
    • 2017-05-15
    相关资源
    最近更新 更多