MinGW(Minimalist GNU For Windows)是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。
MinGW最大的特点就是编译出来的可执行文件能够独立在Windows上运行。
MinGW的组成:
- 编译器(支持C、C++、ADA和Fortran)
- GNU工具
- mingw-get(用于Windows平台安装和部署MinGW和MSYS的命令行安装器)
- mingw-get-inst(用于GUI打包)
1. MinGW安装
1.1. 下载
MinGW官方网址:http://www.mingw.org/
点击“Download Installer”后会跳转到Sourceforge页面进行下载:
之后,会下载一个名为mingw-get-setup.exe
的安装文件。
1.2. 安装下载器
运行刚刚下载的安装程序,看到如下界面:
点击“Install”,进入下面这个界面:
选择安装路径
默认安装路径为C:\MinGW
,我习惯安装在D盘下,点击“Change”修改路径如下:
点"Continue"继续。
安装过程
安装完成后,桌面出现这样一个图标。
安装器
这只是个安装器,需要在线下载真正的安装内容,所以速度不会快。
1.3. 选择安装组件
运行安装程序,有的版本在安装之后会自动运行,看到下面这个界面:
选择安装组件
选择需要安装的组件,右键选择“Mark for Installation”,之后选择"Installation -> Apply Changes”。
1.4. GCC
这里重点要提到的是GCC组件的安装,如图所示。
选择GCC组件
先选择左边的"MinGW Base System"选项,之后再右边找到mingw-gcc。最好选择bin,dev和lic三个组件进行安装。
之后点击菜单栏中的“Installation”进行安装。
注意:在安装程序中,复选框为绿色表示已经安装的项目,复选框为白色表示没有安装的项目。因此如果需要删除,只需要在绿色复选框右键后选择“Mark for removal”即可。
1.5 确认安装成功
安装执行完成后,在D:\MinGW\bin
目录(我们之前配置好的路径)下进行查看。如果找到下面这三个可执行文件,说明安装成功。
注意:如果你是为了使用Code::Blocks安装MinGW,到这一步就完成了。之后的使用请参考C语言从零开始(二)-Code::Blocks使用。Code::Blocks在配置Debug工具时需要制定MinGW的路径。
2. 配置
2.1. 设置MinGW环境变量
鼠标右键“我的电脑”->“属性”,选择“高级”选项卡下的“环境变量”,在系统变量里点“新建”,之后填写MinGW的安装路径,如下:
MinGW路径
之后找到Path,在最前面添加下面这段声明,之后点击确定。安装完成后,在MinGW\bin的目录下,会有一个名为gcc.exe的可执行文件。看到这个说明安装成功。
%MinGW%\bin;
2.2. 查看GCC版本信息
打开命令行,输入gcc -v查看编译器版本。如下图:
GCC
3. MinGW使用
3.1. 测试编译
测试文件test.c,代码如下
#include <stdio.h>
void main() {
printf("Hello World!");
}
3.2. 编译test
编译命令如下:
gcc test.c -o test
输出结果为:test.exe
3.3. 执行
输入test回车,结果如下:
from:https://www.jianshu.com/p/e9ff7b654c4a
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的扩展模块了。