MSYS2 中安装 GCC 13.2.0 版本完整指南
MSYS2 安装指定 GCC 版本 MinGW64 完整指南
文档说明
-
适用环境:Windows 10/11 系统 + MSYS2
-
核心目标:通过 MSYS2 的 pacman 包管理工具,安装指定版本的 MinGW64-GCC 工具链(含 C/C++ 编译器)
-
注意事项:MSYS2 包仓库仅保留近期 GCC 版本,过于老旧版本可能无法直接获取
一、核心前提
-
已完成 MSYS2 安装(安装路径无中文、无空格,如 D:\msys64)
-
操作全程必须在「MSYS2 MinGW 64-bit」终端中执行,避免环境不匹配
-
核心包说明:
-
主编译器包:mingw-w64-x86_64-gcc(包含 gcc 「C 编译器」、g++ 「C++ 编译器」)
-
运行时依赖包:mingw-w64-x86_64-gcc-libs(GCC 运行必需,需与主包版本完全一致)
二、步骤 1:查询可安装的 GCC 版本
先查询 MSYS2 包仓库中当前可用的 GCC 版本,避免盲目指定不存在的版本,执行以下命令:
搜索 GCC 包并列出所有可用版本
pacman -Ss mingw-w64-x86_64-gcc
命令输出解读
输出结果示例如下,其中 x.y.z-x 为可安装的完整版本号(含构建号,需完整记录):
mingw64/mingw-w64-x86_64-gcc 13.2.0-1 (mingw64-devel)
GNU Compiler Collection (C, C++, Fortran, Ada, Go) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-libs 13.2.0-1 (mingw64-devel)
Runtime libraries shipped with GCC for MinGW-w64
-
若输出仅包含一个版本,说明仓库中仅保留该版本,无法选择其他版本
-
记录目标版本号(如 13.2.0-1),后续安装需精准匹配
三、步骤 2:安装指定版本的 GCC
根据目标版本是否在仓库中列出,分两种场景处理,按需选择。
场景 1:安装仓库中已列出的指定版本(推荐,直接安装)
若步骤 1 中查询到目标版本,直接使用 pacman -S 命令指定版本安装,格式如下(替换为实际记录的版本号):
格式:pacman -S 主包名=版本号 依赖包名=版本号
pacman -S mingw-w64-x86_64-gcc=13.2.0-1 mingw-w64-x86_64-gcc-libs=13.2.0-1
关键说明
-
必须同时安装主包和依赖包,版本号完全一致,否则编译器无法正常工作
-
安装过程中提示「是否继续」,输入 y 并按 Enter 确认即可
-
若提示「版本冲突」,先执行 pacman -Sy 更新包仓库缓存,再重新执行安装命令
场景 2:安装仓库中未列出的历史版本(进阶,手动下载本地包)
若步骤 1 中未查询到目标版本,可通过 MSYS2 历史包仓库手动下载包并安装,步骤如下:
-
访问 MSYS2 历史包仓库(MinGW64 专属):https://repo.msys2.org/mingw/mingw64/
-
在页面中搜索 mingw-w64-x86_64-gcc-,找到对应版本的包文件(后缀为 .pkg.tar.zst)
-
同时下载对应的 mingw-w64-x86_64-gcc-libs- 包(版本号与主包完全一致)
- 示例:下载 mingw-w64-x86_64-gcc-12.3.0-1-any.pkg.tar.zst 和 mingw-w64-x86_64-gcc-libs-12.3.0-1-any.pkg.tar.zst
-
将下载的两个包文件放到 MSYS2 可访问路径(如 D:\msys64\home\你的用户名)
-
在 MinGW 64-bit 终端中切换到包文件所在目录,执行以下命令手动安装:
安装本地包(-U 表示升级/安装本地包,--noconfirm 可选,自动确认安装)
pacman -U mingw-w64-x86_64-gcc-12.3.0-1-any.pkg.tar.zst mingw-w64-x86_64-gcc-libs-12.3.0-1-any.pkg.tar.zst
- 补充:历史版本可能存在依赖缺失,终端会提示缺失的包名,需同时下载并安装对应依赖包
四、步骤 3:验证 GCC 版本安装成功
安装完成后,关闭当前终端,重新打开「MSYS2 MinGW 64-bit」终端(确保配置生效),执行以下验证命令:
查看 GCC 版本(验证 C 编译器)
gcc --version
查看 G++ 版本(验证 C++ 编译器,应与 GCC 版本一致)
g++ --version
验证成功标志
终端输出的版本号与指定安装的版本一致,示例如下:
gcc (Rev1, Built by MSYS2 project) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
五、步骤 4:锁定 GCC 版本(避免自动更新)
MSYS2 执行 pacman -Syu 时会自动更新所有已安装包,为防止指定版本 GCC 被覆盖,需锁定包版本,步骤如下:
- 编辑 MSYS2 的 pacman.conf 配置文件:
nano /etc/pacman.conf
- 在配置文件末尾,添加以下内容(锁定 GCC 主包和依赖包):
锁定 GCC 版本,禁止 pacman 自动更新
IgnorePkg = mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-libs
- 保存并退出编辑器:
-
若使用 nano 编辑器:按 Ctrl+O 保存 → 按 Enter 确认文件名 → 按 Ctrl+X 退出
-
后续执行 pacman -Syu 时,MSYS2 会跳过这两个包的更新,保留指定版本
六、可选步骤:卸载原有 GCC 版本(解决版本冲突)
若 MSYS2 中已安装其他版本 GCC,可能出现版本冲突,可先彻底卸载原有版本,再安装指定版本:
彻底卸载现有 GCC 包及无关依赖、配置文件
pacman -Rns mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-libs
命令说明
-Rns 三个参数的含义:
-
-R:卸载指定包
-
-n:删除包对应的配置文件
-
-s:删除无其他包依赖的关联文件
七、常见问题排查
-
安装提示「文件冲突」:先执行 pacman -Syu 更新仓库缓存,若仍冲突,卸载原有版本后重新安装
-
验证时版本号不匹配:关闭终端重新打开,或检查 PATH 环境变量是否优先指向 MSYS2 的 mingw64/bin 目录
-
历史包安装失败:检查依赖包是否齐全,需下载并安装终端提示缺失的所有关联包
八、核心命令汇总
操作目标
命令
查询可用 GCC 版本
pacman -Ss mingw-w64-x86_64-gcc
安装指定版本 GCC
pacman -S mingw-w64-x86_64-gcc=版本号 mingw-w64-x86_64-gcc-libs=版本号
手动安装本地 GCC 包
pacman -U 本地包文件名1 本地包文件名2
彻底卸载原有 GCC 包
pacman -Rns mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-libs
验证 GCC 版本
gcc --version / g++ --version
总结
-
安装核心是成对安装主包与依赖包,且版本号完全一致,避免运行时错误。
-
仓库内版本直接用 pacman -S 包名=版本号 安装,历史版本需手动下载本地包并用 pacman -U 安装。
-
锁定版本可防止后续 pacman -Syu 自动更新,保障指定 GCC 版本长期可用。
-
验证安装成功的关键是 gcc --version 输出与指定版本一致。

浙公网安备 33010602011771号