Windows 上用 MSYS2 安装 GCC/G++(MinGW-w64)保姆级指南
很多同学在 Windows 上想用 gcc/g++ 做课程实验、OJ、或工程构建。最稳妥也最省心的方案就是 MSYS2 + MinGW-w64:版本新、依赖干净、包管理方便(pacman 一条命令就能装齐工具链和库)。本文从 0 到 1 带你完成安装与验证,并附上常见坑位排查。
一、下载安装 MSYS2
-
前往 MSYS2 官网下载
msys2-x86_64-*.exe安装包,按默认选项安装,例如到C:\msys64。 -
安装完成后,在开始菜单里会看到多个终端入口(MSYS2 MSYS / UCRT64 / MINGW64 / CLANG64)。
重点:后文一律使用 “MSYS2 UCRT64” 终端。请确认你打开的是这个。
二、第一次打开先“全量更新”
打开 MSYS2 UCRT64 终端,执行:
pacman -Syu
-
这是系统级更新。首次更新后若提示重启终端,请关闭并重新打开 UCRT64 终端,再执行一次
pacman -Syu直到没有可更新项为止。
三、一条命令装齐 C/C++ 工具链
在 UCRT64 终端 执行:
# 工具链“打包安装”(含 gcc/g++/gdb 等常用组件)
pacman -S --needed mingw-w64-ucrt-x86_64-toolchain
# 常用构建工具(可选,但强烈建议)
pacman -S --needed make cmake ninja
也可以只装编译器:
pacman -S --needed mingw-w64-ucrt-x86_64-gcc
四、(可选)把编译器加入系统 PATH
如果你想在 Windows 的 CMD/PowerShell 里直接跑 gcc/g++(而不进入 UCRT64 终端),可以把下面路径加入 系统/用户环境变量 Path:
C:\msys64\ucrt64\bin
你已经完成了这一步就更好了。注意不要把
C:\msys64\msys64\usr\bin之类的 MSYS 环境路径混到全局 Path,否则可能出现奇怪冲突(比如调用到 MSYS 版工具而非 MinGW-w64 版)。
五、验证安装(Hello, World!)
在任意终端(UCRT64 终端或 Windows 终端)里测试:
g++ --version
where g++ # PowerShell/CMD 下
# 或
which g++ # UCRT64 终端下
新建 hello.cpp:
#include <iostream>
int main() {
std::cout << "Hello, GCC on Windows via MSYS2!" << std::endl;
return 0;
}
编译并运行:
g++ -std=c++17 -O2 hello.cpp -o hello.exe
./hello.exe
若能正常输出,即安装成功。
六、常见问题与排查
Q1:g++: command not found / where g++ 找不到?
-
你可能开错了终端。请打开 MSYS2 UCRT64 而不是 MSYS 或 MINGW64。
-
或者在 Windows 终端中没有配置 Path。把
C:\msys64\ucrt64\bin加到用户/系统 Path 后 重启终端。
Q2:pacman 升级后各种包冲突/卡住?
-
先
pacman -Syu完成系统级升级。必要时关掉终端重开,再跑一遍直到无更新。 -
如提示某些包需要替换/移除,按照提示选择
Y同意即可。
结语
至此,你已经在 Windows 上用 MSYS2 + MinGW-w64(UCRT64) 完整装好了 gcc/g++,并完成了从更新、安装到验证的全流程。后续无论是课堂实验、OJ 练习,还是工程项目、依赖库安装,都可以继续用 pacman 管理,保持环境干净与可升级。祝你编译顺利、AC 长虹!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)