MSYS2
约 1022 字大约 3 分钟
2026-01-24
MSYS2 Windows 软件分发与构建平台
MSYS2 不是“一个 bash”,而是一个在 Windows 上提供类 Linux 环境 + 包管理 + 多套编译工具链的系统。
安装后一堆五颜六色的入口(exe),其实是 同一个 MSYS2 安装里不同的“子环境/终端配置”。
可以把它理解成:
- 一个基础的类 Unix 环境(提供 bash、coreutils、pacman 等)
- 一套 Windows 原生的编译工具链体系(gcc/clang、gdb、make、各种库)
- 超好用的包管理器 pacman(装/更新东西跟 Linux 一样爽)
它最常见目的就是:在 Windows 上舒服地装 C/C++ 工具链和库,然后编译出 Windows 原生 .exe。
Git Bash 本质是:为了让你在 Windows 上更方便用 git,顺带带了一个最小的 bash + 一些基础命令(ls/grep/sed…),点是 git 体验,不是编译器生态
MSYS2 更像:Windows 上的一套可管理的类 Linux 软件仓库 + 多工具链平台
MSYS2:
- 适合:装 gcc/clang/gdb、make/cmake、各种依赖库(zlib、openssl…)、开发 C/C++
- 适合:把环境固定下来,不容易乱
pacman -S xxx一条命令装全家桶
MSYS2 UCRT64:推荐给大多数人(现代、兼容性好),用的是 UCRT(Windows 的新 C 运行库),工具链路径一般是:...\ucrt64\bin
MSYS2 MSYS:这是“基础 Unix 环境”本体(跑 pacman、bash、一些 Unix 工具),不建议拿它当编译 Windows 程序的主环境(它更多是管理/构建辅助用)
MSYS2 MINGW64:传统经典路线,也能用,只是现在很多人更推荐 UCRT64
MSYS2 CLANGARM64:Clang 工具链,目标是 ARM64 Windows(比如 ARM 设备/某些笔记本),普通 x64 Win10 基本用不上
MSYS2 CLANG64:Clang 工具链,目标是 x64 Windows,如果你更想用 clang 而不是 gcc,可以用这个
gcc = GNU Compiler Collection,最开始主要是 C 编译器
比如 hello.c 不能直接被电脑执行,必须先变成机器能跑的 可执行文件 .exe。
gcc 就是干这事的:把 C 源码 → 编译/链接 → 生成 exe。
更严谨一点,它背后其实是一套流水线:
- 预处理:处理
#include、#define - 编译:C → 汇编
- 汇编:汇编 → 目标文件
.o - 链接:把
.o和库拼起来 →.exe
平时一句 gcc hello.c -o hello.exe,gcc 帮你把上面全做了。
常用命令:
编译一个文件
gcc hello.c -o hello.exe加警告,这能提前抓出很多“隐形 bug”。
gcc -Wall -Wextra hello.c -o hello.exe开调试(给 gdb / VS Code 用)
gcc -g -O0 hello.c -o hello.exe-g:生成调试信息(断点、看变量必须)
-O0:关优化(新手调试更直观)
多文件编译(你以后一定会用)
假设有 main.c 和 util.c:
gcc -g -O0 -Wall -Wextra main.c util.c -o app.exeC 语言环境安装
(Windows 10 + VS Code + MSYS2 + gcc)
- VS Code:IDE / 编辑器(写代码、断点、UI)
- gcc:C 编译器(真正把
.c编译成.exe) - gdb:调试器(断点、单步、看变量)
- MSYS2: 👉 一个 开发工具箱 + 包管理器 + 多套工具链平台 👉 负责安装/管理 gcc、gdb、make、库等
VS Code ≠ 编译器,gcc / gdb 才是干活的
下载并安装 MSYS2,安装路径建议(任选,避免中文/空格):C:\msys64,D:\msys64
MSYS2 会生成多个启动入口(不是装了很多软件):MSYS2 UCRT64,推荐主力(现代 Windows C 运行库)
在 UCRT64 里安装 gcc / gdb
更新系统
pacman -Syu如提示重开终端 → 照做 → 再跑一次 pacman -Syu
安装工具链
pacman -S --needed mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-gdb出现:
Enter a selection (default=all):直接回车
验证
which gcc
gcc --version
gdb --version正常应看到:
/ucrt64/bin/gcc- gcc / gdb 版本信息
配置 Windows 环境变量 Path(关键)
把下面路径加入 Path(推荐:用户变量 + 系统变量都加):
D:\msys64\ucrt64\bin(按实际安装路径调整)
不要新建自定义变量名(比如 msys),一定是加到 Path 里。
修改后必须:
- 关闭所有 cmd / PowerShell / VS Code
- 重新打开
验证(在 cmd 或 PowerShell)
where gcc
gcc --version在 VS Code 中安装:C/C++(Microsoft,ms-vscode.cpptools)