很多同学在 Windows 上想用 gcc/g++ 做课程实验、OJ、或工程构建。最稳妥也最省心的方案就是 MSYS2 + MinGW-w64:版本新、依赖干净、包管理方便(pacman 一条命令就能装齐工具链和库)。本文从 0 到 1 带你完成安装与验证,并附上常见坑位排查。


一、下载安装 MSYS2

  1. 前往 MSYS2 官网下载 msys2-x86_64-*.exe 安装包,按默认选项安装,例如到 C:\msys64

  2. 安装完成后,在开始菜单里会看到多个终端入口(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 长虹!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐