windows下使用mingw编译python扩展模块
环境:
1.python2.7.2
2.mingw20120426
说明:
PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径。
MINGW_HOME:不做特殊说明的话,默认代表mingw的安装路径。
首选需要安装python和mingw,python就不多说了,至于mingw的安装可以参考这个链接
http://www.swingworks.net/2010/11/install_mingw_and_msys_with_mingw-get-inst/
如果想要离线的mingw组件包 可以通过这个链接下载 http://www.kuaipan.cn/file/id_4779452491895504.htm
下面说下修改全局的python默认编译器
1.将MINGW_HOME\bin加入到系统环境变量
2.修改PYTHON_HOME\Lib\distutils\distutils.cfg(如果文件不存在,请手动创建下)
3.添加如下几行
[build] compiler = mingw32
4.修改PYTHON_HOME\Lib\distutils\cygwinccompiler.py 找到包含-mno-cygwin的行,将-mno-cygwin替换为空(gcc4.6之后去除了-mno-cygwin这个参数,如果不去除,编译时会报错。可以使用gcc --version查看版本号)。如果有sed命令的话 可以使用sed替换
cd PYTHON_HOME\Lib\distutils && cp cygwinccompiler.py cygwinccompiler.py.bak && sed -i 's# -mno-cygwin##g' cygwinccompiler.py
这样以后就可以使用mingw来编译python的扩展模块了。