用cython和mingw编译产生gcc:error:无法识别的命令行选项'-mno-cygwin'
 我正在尝试使用mingw(64位)在win 7 64-bit中使用cython编译python扩展。 
 我正在使用Python 2.6(Active Python 2.6.6)以及足够的distutils.cfg文件(将mingw设置为编译器) 
执行时
> C:\Python26\programas\Cython>python setup.py build_ext --inplace 我得到一个错误,说gcc没有-mno-cygwin选项:
 > C:\Python26\programas\Cython>python setup.py build_ext --inplace running build_ext skipping 'hello2.c' Cython extension (up-to-date) building 'hello2' extension C:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python26\include -IC:\Python26\PC -c hello2.c -o build\temp.win-amd64-2.6\Release\hello2.o gcc: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' failed with exit status 1 
gcc是:
 C:\>gcc --version gcc (GCC) 4.7.0 20110430 (experimental) Copyright (C) 2011 Free Software Foundation, Inc. 
我怎么解决它?
 这听起来像GCC 4.7.0终于删除了弃用的-mno-cygwin选项,但distutils还没有赶上它。 安装MinGW的稍旧版本,或者编辑Python目录中的distutils\cygwinccompiler.py以删除-mno-cygwin所有实例。 
在解决这些问题的过程中,我发现我在这个线程中写了一个配方。 我在这里重现它,以防其他人使用它:
一步一步的配方编译64位的cython扩展与python 2.6.6与mingw编译器在win 7 64位
  安装mingw编译器 
  1)安装tdm64-gcc-4.5.2.exe进行64位编译 
  将修补程序应用于python.h 
  2)修改C:\ python26 \ include中的python.h,如http://bugs.python.org/file12411/mingw-w64.patch 
  修改distutils 
  编辑2013:注意比python 2.7.6和3.3.3 -mno-cygwin已经最终被删除,所以第3步可以跳过 。 
  3)消除所有参数-mno-cygwin在Python26 \ Lib \ distutils \ cygwinccompiler.py中的Mingw32CCompiler类中调用gcc 
  4)在同一模块中,当msc_ver =='1500'时,修改get_msvcr()返回一个空列表,而不是['msvcr90']。 
  产生libpython26.a文件(不包括在64位python中) 
  编辑2013:通过从gohlke下载并安装libpython26.a,可以跳过以下步骤5-10 。 
  5)从mingw-w64-bin_x86_64获取gendef.exe -mingw_20101003_sezero.zip(gendef.exe在tmd64发行版中不可用另一种解决方法是从源代码编译gendef) 
  6)将python26.dll(位于C \ windows \ system32)复制到用户目录(C:\ Users \ myname) 
  7)生成python26.def文件: 
gendef.exe C:\ Users \ myname \ python26.dll
  8)将生成的python.def文件(位于执行gendef的文件夹中)移动到用户目录 
  9)用下面的方法生成libpython.a: 
dlltool -v –dllname python26.dll –def C:\ Users \ myname \ python26.def –output-lib C:\ Users \ myname \ libpython26.a
10)将创build的libpython26.a移动到C:\ Python26 \ libs
  生成.pyd扩展名 
  11)按照cython教程( http://docs.cython.org/src/quickstart/build.html )中的说明创build一个testinghello.pyx文件和一个setup.py文件。 
  12)编译 
python setup.py build_ext –inplace
完成!
这个bug现在已经在Python 2.7.6发布候选版本1中被修复了。
补丁提交在这里 。
解决的问题跟踪器线程在这里 。
 尝试这个 。 它真的适用于错误 
  https://github.com/develersrl/gccwinbinaries