MinGW的全称为“Minimalist GUN for Windows”,顾名思义就是在Windows系统上可用的GCC编译器。
主要有两个版本:MinGW32、MinGW-W64。
一、版本区分
1.MinGW32:一般也称为MinGW,因其是最先的MinGW版本。从Cygwin(1.3.3版本)基础上发展而来。现MinGW32已停止更新,内置的GCC版本也停留在6.3.0,已逐渐被后来者MinGW-W64取代,而且无法编译64位exe程序,不建议继续使用。
2.MinGW-W64:在2005年开始启动该项目,以便为64位exe和更多的API提供支持。在2007年脱离原始的MinGW成为独立项目。
二、MinGW32下载安装(不建议)
1.进入官网下载:https://www.mingw.org/(该网站时常挂,很难通过此方式下载)
从sourceforge网站上下载:https://sourceforge.net/projects/mingw/
2.下面演示从sourceforge网站上下载,点击“Download”
3.双击运行安装程序
4.点击“Install”开始安装
5.选择安装路径(注意安装路径不能有中文及空白),点击“Continue”继续
6.等待安装
7.安装完成,点击“Continue”
8.接着下载Pack包,首先打开“MinGW Installation Manager”
9.选中“Basic Setup”,右键选中右边的Package,点击“Mark for Installation”。实际上并不是Basic Setup中所有的Package都需要用到,但全部下载可避免编译时漏缺。
10.点击“Installation”->“Apply Changes”进行下载
11.配置环境变量,打开“系统设置”->“系统”->“系统信息”,点击“高级系统设置”
12.点击“环境变量”
13.选择“系统变量”中的“Path”,点击“编辑”
14.点击“新建”,输入安装的“MinGW\bin”路径,最后点击“确定”
三、MinGW-W64下载安装(推荐)
1.进入官网下载:mingw-w64
点击“Download”下的“Pre-built Toolchains”,随后下拉找到MinGW-W64-builds下的“GitHub”
2.点击进入GitHub网站,下拉可找到不同版本之间的压缩包,不同版本压缩包区别如下
①i686和x86_64指编译器的目标架构
🏷️i686:32位系统架构,编译32位exe程序
🏷️x86_64:64位系统架构,编译64位exe程序
②15.1.0表示该版本为v15.1.0
③mcf、posix和win32指编译器使用的线程模型
🏷️mcf:利用 Windows 7+ 原生 API 实现 C++11 线程标准,无需额外依赖,性能最优(适用于Windows7及以上版本)
🏷️posix:通过 pthread-w32 库模拟 POSIX 接口,实现跨平台兼容性,但依赖额外 DLL(适用于Linux、Unix、MAC)
🏷️win32:直接使用 Windows API,不支持 C++11 多线程功能(适用于全Windows)
💡:线程模型mcf是后期才有的版本,旨在解决win32线程模型的局限性,传统的win32基于Windows API,不支持C++11多线程功能。GCC的C++标准库(libstdc++)可直接使用MCF Gthread实现C++11多线程功能。
④dwarf和seh指编译器使用的异常处理模型
🏷️dwarf:属于Linux上的异常处理模型,现用在32位架构上
🏷️seh:属于Windows上的异常处理模型,现用在64位架构上
💡:异常处理模型早期还有一个sjlj,同时支持32和64位架构,但现已被弃用。
⑤ucrt和msvcrt指的是运行时库
🏷️ucrt:Universal C Runtime,完全支持C99/C11标准(适用于Windows7及以上系统)
🏷️msvcrt:Mircosoft Visual C++ Runtime,主要支持C90/C99子集,部分功能受限(适用于Windows全版本,但因为向后兼容问题已经过时)
3.这里选择“x86_64-15.1.0-release-mcf-seh-ucrt-rt_V12-rev0.7z”,下载完成后解压
4.配置环境变量,打开“系统设置”->“系统”->“系统信息”,点击“高级系统设置”
5.点击“环境变量”
6.选择“系统变量”中的“Path”,点击“编辑”
7.点击“新建”,输入解压后的“mingw64\bin”路径,最后点击“确定”