1、下载MinGW
官网下载地址:http://www.mingw-w64.org/
点击红框中的“Downloads”超链接,进入 MinGW-w64 下载详情页面。
点击红框中的“SourceForge”超链接,进入 SourceForge 中的 MinGW-w64 下载页面。
下载自己需要的版本,这里下载x86_64-win32-seh
2、版本介绍
版本相关介绍可参考:https://wiki.qt.io/MinGW-64-bit
2.1、GCC线程模型
posix版本: 这个版本的线程是使用了pthread的Windows版本, posix是操作系统统一接口标准,不同操作系統需要提供相同的接口以方便应用移植,降低移植成本,但是只支持POSIX线程模型。pthread是在Linux下常用的线程库,使用posix接口意味着应用的多线程模型移植更方便,哪怕从Linux下拉过来一个应用框架也可以较小代价修改代码。但是在某些情况下,会引起性能下降,毕竟不是Windows原生的线程库, C标准可能到C11以上,并且支持C11 (C语言编码标准)的特性。
win32版本: 这个版本使用的是Windows的原生线程库,性能等方面表现更出色,兼容性更好,没有C11那些眼花缭乱的特性,就看你是否熟悉Windows相关接口。
2.2、导常处理
siji(setjimp/longimp) :
- 适用于32位和64位
- 不是“零成本”:即使未引发异常,它也会带来较小的性能损失(在异常重载代码中约为15%),但有时损失可能会更大:
- 允许遍历例如Windows回调的异常
seh (zero overhead exception)
- 异常分支处理零开销,即:不会调用Windows的异常处理回调,完全由用户自己设计实现。该版本支持win64。
dwar(DW2, dwarf-2)
- 仅适用于32位
- 没有永久的运行时开销
- dvarf是一种可执行文件的格式,类似于Linux下的el文件,以及Windows专用的exe或者安卓的apk安装包内的可执行二进制文件。dvar内部描述了可执行程序的函数符号信息、关联的动态库、变量、堆栈大小等一系列信息。该版本会将程序编译成以dvar格式的二进制文件, Windows本身支持该类型的可执行文件,但是有个缺陷:如果你想调试你的程序,如gb打断,点调试,就不能调试d接口(d是Windows的动态库文件) ,这样对于调用d接口地方的传参你就没有办法调试,从而没有办法得知是否是数据入参不正确或者库函数接口调用方式不正确。并且这个版本只有win32版本,而且编译时所有调用栈信息都会用dvarf格式存储,而非兼容Windows可执行格式。
3、配置MinGW
下载好的MinGW并解压,如下图。
设置环境变量。
4、检测是否配置成功
打开cmd,录入
gcc -v
出现如下界面,表示MinGW已安装成功。