MinGW下载安装避坑指南:GCC编译器与Qt环境配置全流程
2026/9/17 15:58:43 网站建设 项目流程

如果你是在Windows上搞C/C++开发、或者正跟着Qt教程一步步搭环境,十有八九会卡在一个叫MinGW的下载环节。教程里就一句话“请先安装MinGW”,然后你点进官网,发现页面跳转得极其痛苦,下载速度像蜗牛爬,好不容易下了个文件,双击一看是个广告捆绑安装器,心态直接崩掉。这篇文章就是来把你从这套流程里捞出来的,我会把MinGW到底是什么、为什么下载一直失败、哪些渠道真正靠谱、装完之后如何配置、以及报错之后怎么排查,一条龙讲清楚。

这篇内容适合所有刚入门MinGW的读者,也适合那些已经被Qt的Kit报错折磨到怀疑人生的开发者。我尽量说人话,每个步骤都给到具体的操作路径和判断标准,你看完可以直接照着做。

1. 为什么MinGW的下载安装永远这么闹心——先说清它到底是干什么的

1.1 它和MSVC的差别,直接决定你怎么选

MinGW的全称是Minimalist GNU for Windows,本质上就是把GNU编译器工具链(GCC)整体迁移到Windows平台上的一套发行版。换句话说,你本来是在Windows上写代码,但用的不是微软自家那套MSVC编译器,而是开源社区维护的GCC编译器。再直白一点:同样一份C/C++代码,用MSVC编译和用MinGW编译,走的是两套完全不同的编译规则和运行时环境,生成出来的二进制文件、依赖库、甚至函数命名规则都不一样。

MSVC和MinGW的区别,是很多新手最容易懵的地方,但实际上你只需要抓住几个关键点:

对比维度MSVCMinGW
编译器来源微软官方,闭源GNU开源社区,基于GCC
安装体积需要装Visual Studio,动辄几个GB压缩包几百MB以内,解压即用
标准库实现UCRT/MSVCRTMinGW-w64自带运行时库
默认调试器Visual Studio调试器GDB
许可证商业软件,免费版有限制完全开源免费
与Qt的配合Qt有MSVC预编译包,但要求VS版本匹配Qt官方也发布MinGW版安装包,使用门槛低

大多数Qt初学者选MinGW,不是因为MinGW比MSVC更好,而是因为它够轻、够省事。尤其是我这种不想为了一个控制台程序就装十几个GB Visual Studio的人,MinGW简直是救命稻草。

1.2 为什么Qt开发绕不开MinGW

Qt本身是一个跨平台框架,但它在Windows上输出的代码,最终还是要交给某个编译器去生成可执行文件。Qt官方对Windows平台提供了两种主流的预编译包:MSVC版本和MinGW版本。你下载Qt安装包时,在线安装器会让你勾选组件,其中就包含“MinGW x.x.x 32-bit/64-bit”这一类选项。

问题在于,Qt的每个版本对MinGW的版本是有隐式绑定关系的。比如Qt 5.9.x时代的安装包配套的是MinGW 5.3.0,Qt 5.12以后常见的是MinGW 7.3.0,到了Qt 6.x时代,官方推荐的是MinGW 11.2.0及以上。如果你自己在官网随便下载了一个最新版MinGW去配老版本Qt,很多情况下Qt Creator会直接提示编译器版本不兼容,甚至干脆不认这个编译器。

这也是为什么“error while building/deploying project qtmodbus (kit: desktop qt 5.9.9 mingw)”这类报错会成为热搜词,因为版本错配太常见了。

1.3 下载失败不是你的网络问题,是这些坑在作怪

在往下聊渠道之前,我们得先认清一个事实:MinGW下载失败,很多时候还真不是你一个人网络的问题。我自己就踩过这么几个坑:

首先是SourceForge的CDN链路。MinGW官网的Downloads按钮会跳转到SourceForge托管页面,这个平台在国内的网络环境下,下载速度极其不稳定,经常出现进度条爬到90%之后直接卡死的情况。更烦人的是,SourceForge页面上有各种“Recommended Project”广告位,稍不注意就会下载到一个不明来路的exe安装器,打开以后全是在给你装其他捆绑软件。很多新手说“我从官网下载了MinGW但安装后没有gcc”,十有八九就是下载到了广告文件。

其次是GitHub Releases的稳定性问题。MinGW-w64的构建产物也托管在GitHub上,但GitHub的大文件下载在部分地区同样存在速度波动大的问题,特别是压缩包超过100MB之后,浏览器默认下载一旦断线,就必须重新开始。加上浏览器本身不支持断点续传,这个过程非常折磨人。

第三是杀毒软件的误报。MinGW里的很多编译工具文件(比如gcc.exe、g++.exe、mingw32-make.exe)因为带有执行权限和代码生成逻辑,经常会被某些安全软件当成“风险工具”直接隔离或拦截。你解压完了才发现bin目录下少了一堆文件,编译器自然无法使用。

这些坑叠加在一起,就导致了MinGW“下载失败”的观感极其常见。下面我直接给你一套能落地执行的下载方案。

2. 三步拿到MinGW的可靠渠道:镜像站优先于官网直连

2.1 渠道一:SourceForge的镜像节点选择技巧

如果你还是想坚持从SourceForge下载,至少要学会手动选择镜像节点。

具体操作是这样:打开MinGW-w64的SourceForge页面后,找到你需要下载的文件(通常是类似x86_64-posix-seh这种命名的压缩包),点击下载后会进入一个自动跳转的过程。此时不要干等着,注意页面上会有“Problems with download? Try another mirror”这样的提示链接,点进去就能手动选择镜像。我建议优先尝试Pegasus、iweb、managedway这几个节点,它们在大文件传输时表现相对稳定。

另外,下载的压缩包格式建议优先选.tar.xz或者.zip里的zip格式。tar.xz虽然体积小,但Windows自带的解压工具并不支持,你还得额外装7-Zip,对于新手来说zip格式最省心。

但如果SourceForge的页面你根本打不开,或者加载速度慢到无法忍受,那就直接跳到下一个方案。

2.2 渠道二:通过国内镜像站拉取

国内镜像站是我目前在Windows上安装MinGW的最优先选择。以清华大学的TUNA镜像站为例,它的同步源里包含了MinGW-w64的完整目录,你不需要注册,不需要登录,直接用浏览器或者下载工具就能拉取文件。

镜像站地址的路径一般是https://mirrors.tuna.tsinghua.edu.cn/...下面挂载mingw-w64相关目录。进入后选择你需要版本文件夹,按需下载对应的压缩包到本地。除了清华镜像外,中科大、阿里云等镜像站也有类似的支持,你可以挑一个自己访问速度最快的。

用镜像站的另一个好处是:支持断点续传。如果你使用IDM、Free Download Manager这类下载工具,即使中途断了,也不需要从头再来。如果你没有下载工具,也可以改用浏览器内置的下载功能,搭配镜像站的稳定链路,体验已经比直连SourceForge好太多。

2.3 渠道三:Qt安装器自带的MinGW组件

有一种情况很多人不了解:如果你已经安装了Qt的在线安装器,那么你完全可以不用单独去下载MinGW。

Qt官方在线安装器在“选择组件”那一步,会有一个“Tools”分类,展开后能找到“MinGW x.x.x”目录。这个目录下就是Qt官方帮你测试过、确定与当前Qt版本匹配的MinGW编译器。你只需要勾选对应组件,安装器会自动完成下载和解压,省去环境变量和版本匹配的麻烦。

如果你的Qt安装器里看不到MinGW组件,常见原因是安装时没有勾选“Tools”分类,或者安装器版本太老。这时候重新打开安装器,选择“添加/移除组件”,把对应的MinGW勾上就行。这个方法非常适合还在用Qt 5.15.2、Qt 5.14这种老版本进行项目维护的同学,因为这类版本对MinGW的版本有硬性要求,使用Qt自带组件是最稳的。

你可能会问,为什么官方安装器下MinGW就不会失败?因为Qt安装器本身有一套完整的下载重试和校验机制,它对下载中断、文件损坏的处理要比浏览器强很多。所以遇到渠道问题时,优先用安装器去解决,这本身就是一条极好的思路。

3. 解压、配环境变量、验证编译器——三步确认装好了

3.1 解压位置和目录结构

不管你从哪个渠道拿到MinGW压缩包,下载完成后第一件事不是双击运行(因为MinGW根本不需要安装器),而是把它解压到一个你记得住的纯英文路径下。

我个人的习惯是解压到D盘的根目录下,比如D:\mingw64。请注意三个细节:

  • 路径中不要包含中文、空格和特殊符号。很多编译工具链对路径里的空格处理不好,后续你配置Qt时会莫名奇妙出问题。
  • 不要解压到需要管理员权限才能写入的目录。像C:\Program Files这种路径,除非你用管理员身份打开解压软件,否则解压过程中很容易权限不足,文件缺失后你根本不知道。
  • 记住解压后的bin目录位置。MinGW的所有可执行文件都在bin目录下,比如gcc.exeg++.exegdb.exemingw32-make.exe。后续配置环境变量、配置Qt编译器,都是指向这个目录。

解压完成后,你可以打开D:\mingw64\bin看一眼,确认里面至少有gcc.exeg++.exe。如果没有,说明你的压缩包有问题或者被杀毒软件拦截了一部分文件,这时候要去检查安全中心的隔离记录,把被隔离的文件恢复出来。

3.2 环境变量配置的两种方式

MinGW装好之后,必须把bin目录加入系统的PATH环境变量,否则你在命令行里敲gcc --version会提示“不是内部或外部命令”。

最简单的方式是图形界面操作:右键“此电脑” -> 属性 -> 高级系统设置 -> 环境变量,在“系统变量”里找到名为Path的变量,点击编辑,新建一行,填入D:\mingw64\bin,然后一路确定保存。

这里有一个很实用的提醒:改完环境变量后,已经打开的终端窗口不会自动生效。你需要重新打开一个cmd窗口,或者重启一下Qt Creator。很多人在这一步反复试了几次都觉得“我明明改了PATH怎么还是不行”,其实就是没重开终端。

如果你习惯命令行操作,也可以用setx命令快速添加:

setx PATH "D:\mingw64\bin;%PATH%"

注意setx有字符串长度限制,如果你的PATH变量已经非常长了,这条命令可能截断原有内容。所以我个人更推荐用图形界面操作,安全稳妥。

3.3 用一行命令验证编译器可用性

配置完环境变量并重开终端后,验证MinGW是否生效只需要一个命令:

gcc --version

如果输出类似:

gcc (MinGW-W64 x86_64-posix-seh) 8.1.0 Copyright (C) 2018 Free Software Foundation, Inc. ...

说明编译器已经可以正常使用。我还会顺手再验证两个工具:

g++ --version mingw32-make --version

g++用于编译C++代码,mingw32-make用于执行Makefile。在Qt项目中,后者的路径通常需要手动指定到Qt Creator的构建环境里,所以提前确认它存在非常重要。

如果你想写一个最基础的C++文件测试编译,也可以找一个文件夹新建hello.cpp,写入:

#include <iostream> int main() { std::cout << "Hello, MinGW!" << std::endl; return 0; }

然后执行:

g++ hello.cpp -o hello.exe hello.exe

能看到“Hello, MinGW!”的输出,就说明整个工具链已经彻底跑通了。

4. 把MinGW挂到Qt/Kits里:版本匹配才是关键

4.1 Qt与MinGW的版本对应关系

很多人的MinGW下载安装都没问题,但一到Qt Creator里就报错,原因基本集中在版本匹配上。Qt的每个大版本发布时,都会针对一个特定版本的MinGW做适配,官方不会保证“任何MinGW版本都能用”。

我根据实际使用经验整理了常见搭配:

Qt版本官方配套MinGW位数
Qt 5.9.xMinGW 5.3.032位
Qt 5.12.xMinGW 7.3.064位
Qt 5.14.x / 5.15.xMinGW 8.1.064位
Qt 6.2.xMinGW 11.2.064位
Qt 6.5.x及以后MinGW 11.2.0及以上64位

这里特别要提醒一个坑:很多人在2024年之后才下载Qt 5.9.9这种老版本,然后搭配了一个最新版的MinGW-w64编译器,结果Qt Creator在编译时直接报“cannot find -lglu32”或者“compiler cannot produce code”之类的错误。这些报错看起来千奇百怪,根源就是版本不匹配。

所以,在你下载MinGW之前,先查清楚你用的Qt版本到底配套哪个MinGW,再去下载对应版本。这也是“qt 5.15.2 mingw 离线包 下载”这类搜索词热度居高不下的原因——版本锁定太重要了。

4.2 在Qt Creator里手动注册编译器

如果你使用Qt安装器自带的MinGW,Qt Creator一般会自动识别,不需要额外配置。但如果你是自己下载的MinGW,那么大概率需要在Qt Creator里手动注册一下。

具体路径是:Qt Creator菜单栏 -> 工具 -> 选项 -> Kits -> 编译器选项卡(Compilers)。在编译器页面点“添加”-> “GCC”-> “C++”,然后在“编译器路径”一栏选择D:\mingw64\bin\g++.exe。同理再添加一个C语言编译器,指向gcc.exe

添加完之后,还需要在“Qt Versions”选项卡里确认qmake路径。qmake是你Qt安装目录下的一个可执行文件,比如D:\Qt\Qt5.15.2\5.15.2\mingw81_64\bin\qmake.exe。如果这里的路径是空的或者指向了MSVC版本,也会导致Kit不可用。

最后回到“Kits”选项卡,新建或编辑一个Kit,把“编译器”里的C和C++都选成刚才添加的MinGW编译器,“Qt Version”选成刚才确认的qmake版本,“CMake”如果有需要也一并指定。保存之后,这个Kit才能正常构建项目。

4.3 最容易踩的32位/64位陷阱

版本匹配之外,另一个高频坑是位数不匹配。简单来说,你在Qt安装器里如果选择的是mingw81_64目录下的Qt库,那么你的MinGW编译器也必须是64位版本的;如果你用了32位的编译器去链接64位的Qt库,链接阶段会报一堆莫名其妙的“undefined reference”错误。

判断方法很简单:下载MinGW时看压缩包的名字,含有x86_64的就是64位,含有i686的就是32位。在Qt Creator的Kits页面里也可以看到编译器名称后面是否带有(x86_64)的标记。

还有一个小技巧:如果你不确定自己的Qt装的到底是32位还是64位,直接看安装路径。Qt默认的安装目录下会明确标注,比如D:\Qt\Qt5.15.2\5.15.2\mingw81_64里的“_64”就是64位,mingw53_32里的“_32”就是32位。对照着去选MinGW,基本不会出错。

5. 实操案例:Qt 5.9.9 MinGW Kit编译报错的完整排查链路

5.1 报错现场还原

这里我直接还原一个真实场景,也是搜索热词里出现过的典型问题:打开Qt Creator后,加载了一个名为qtmodbus的项目,在Kit栏里选择了“Desktop Qt 5.9.9 MinGW”,然后点构建,结果编译输出窗口出现:

error while building/deploying project qtmodbus (kit: desktop qt 5.9.9 mingw)

点开详细信息后,往往还会看到:

The compiler "...\g++.exe" cannot produce code for the Qt version "Qt 5.9.9" (x86)

或者:

"g++" is not recognized as an internal or external command

这两个报错看起来都像是“编译器不行”,但实际原因完全不同。第一个是编译器版本与Qt库不匹配,第二个是PATH环境变量没有生效。如果不加判断直接重装,很容易浪费时间。

5.2 排查链路第1~4步

我建议按以下顺序逐层排查:

第一步,确认编译器路径本身是否有效。在Qt Creator的“工具 -> 选项 -> Kits -> 编译器”里,选中当前的GCC编译器,查看编译器路径是否确实指向了g++.exe。如果路径是空的、或者指向了不存在的文件,说明是路径配置问题。

第二步,验证PATH是否真的生效。打开cmd,输入where g++,如果系统提示找不到,说明你的PATH配置没有作用。这时候重新检查环境变量,并记得重开终端和Qt Creator。如果你在cmd里能正常看到g++路径,但在Qt Creator的构建环境里仍报“not recognized”,那么还需要检查Kit设置里的“环境”项,看是否存在覆盖PATH值的配置。

第三步,检查位数匹配。确认Qt库是32位还是64位,确认编译器是32位还是64位。这一步直接把两边路径打开对照就行,Qt库的位数看安装目录里的名字,编译器的位数可以用命令查看:

g++ -v

输出信息里有Target: x86_64-w64-mingw32就是64位版,如果是i686-w64-mingw32就是32位版。

第四步,检查qmake位置是否与编译器一致。Qt 5.9.9如果你安装的是32位库,那么qmake路径必须是32位库目录下的,不能把64位的qmake配给32位的编译器。这一步很多人会忽略,因为qmake能正常显示版本号,但实际生成的Makefile里链接参数全是按位数写死的,位数不匹配一定会出问题。

5.3 三分钟定位速查表

为了让你以后遇到同类报错更快定位,我整理了一张速查表:

症状可能原因修复方法
提示编译器无法生成代码编译器与Qt版本不匹配下载对应版本的MinGW
提示g++、mingw32-make不是内部命令PATH未生效重新配置环境变量并重开终端
链接阶段大量undefined reference位数不匹配统一Qt库、编译器位数
qmake未找到Qt版本Qt Version未配置在Kits里手动添加qmake路径
解压后bin目录缺少文件被杀毒软件拦截恢复被隔离文件或重新解压
Qt Creator不识别编译器编译器类型选错添加编译器时选择GCC类型而不是MSVC

这张表我建议截图保存。很多报错看起来复杂,但对照着这一步一步查,基本三分钟内能定位问题。

6. 安装之后的几个收尾动作与我的经验总结

6.1 PATH里只保留一份MinGW

一个很容易被忽视的坑:如果你的电脑里之前装过其他软件(比如Python、Git、VMware等),它们可能自带或引入了另一个版本的MinGW。多个MinGW的bin目录同时出现在PATH里,会导致你在命令行敲gcc时,实际调用的是旧版本而不是你刚装的新版本。

判断方法是在cmd里输入:

where gcc

如果输出多行路径,说明存在多个版本冲突。解决办法就是清理PATH,只保留你决定使用的那个bin目录。比如你刚才解压到D:\mingw64,那就把其他与MinGW相关的路径从PATH里删掉。

6.2 下载文件做SHA-256校验

这个方法是我后期才开始使用的,但真的能帮你避开很多暗坑。SourceForge或者镜像站在每个压缩包旁边都会提供一个.sha256校验文件。下载完压缩包后,用PowerShell执行一条命令就能校验文件完整性:

Get-FileHash D:\mingw64.zip -Algorithm SHA256

把得到的哈希值和官方提供的比对,一致说明文件没有损坏,不一致就重新下载。这个操作对目录中个别文件损坏、压缩包本身被截断这类隐蔽问题非常有效,强烈建议在解压前执行。

6.3 最后分享一个个人经验

从最早在官网下载失败、被SourceForge假下载按钮骗,到后来学会用镜像站、用Qt安装器自带组件,我已经帮自己也帮别人处理过很多次MinGW的安装问题。现在我的固定流程是:先查当前Qt需要的MinGW版本号,然后直接去镜像站拉对应压缩包,解压后配置环境变量,最后在Qt Creator里手动注册编译器并验证一个空项目能跑通,整个过程不超过十分钟。

有一件事我特别想提醒你:以后遇到任何“MinGW下载失败”“编译报错无法解决”的情况,先别急着把MinGW删掉重装。先检查版本匹配、位数、PATH生效状态这三项,绝大多数问题都能快速解决。重装是最后的办法,不是第一选择。

工具链这种东西,一旦配置好可以一直用很多年。希望这篇内容能帮你跨过下载安装这道坎,把时间省下来真正用到写代码上。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询