Windows 下 GCC 编译器安装与排错实录
记录一次从源码编译 Ollama 时遇到的 CGO 编译器缺失问题,以及完整的 MSYS2 GCC 安装排错过程。
问题背景
在 Windows 环境下尝试从源码编译运行 Ollama 时,遇到了经典的 CGO 编译器缺失错误:

(.venv) J:\PythonProjects4\ollama>go run . serve
# runtime/cgo
cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in %PATH%
这个错误表明系统缺少 GCC 编译器,而 Ollama 依赖的某些组件需要通过 CGO 调用 C 代码进行编译。
解决方案选择
Windows 下安装 GCC 有多种途径:
| 方案 | 优点 | 缺点 |
|---|---|---|
| MSYS2 | 包管理完善,更新及时 | 安装包较大 |
| MinGW-w64 独立版 | 轻量级,配置简单 | 版本较旧,手动更新麻烦 |
| Cygwin | 功能全面 | 过于笨重,不适合仅需要 GCC 的场景 |
| WSL | Linux 环境完整 | 需要虚拟化,与 Windows 原生开发工具链集成稍麻烦 |
最终选择:MSYS2 ------ 因为它提供了完整的 MinGW-w64 工具链,并且可以通过 pacman 方便地管理软件包。
安装过程
第一步:安装 MSYS2 基础系统
-
从 MSYS2 官网 下载安装程序
-
运行安装向导,选择安装路径(本例安装在
D:\msys64) -
安装完成后,在开始菜单中找到 "MSYS2 MSYS" 或 "MSYS2 MinGW 64-bit",以管理员身份运行

第二步:更新包数据库
pacman -Syu
⚠️ 如果提示关闭终端,请关闭后重新打开,再次运行
pacman -Su完成更新。

第三步:安装 GCC 工具链
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-toolchain
这里遇到了第一个坑:依赖冲突

:: There are 13 members in group mingw-w64-x86_64-toolchain:
...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing mingw-w64-x86_64-gcc-libs (15.2.0-11) breaks dependency
'mingw-w64-x86_64-gcc-libs=15.2.0-8' required by mingw-w64-x86_64-gcc-libgfortran
原因分析 :系统中已存在 -git 版本的开发包,与要安装的稳定版本冲突。
排错过程
尝试一:强制刷新包数据库
pacman -Syyu
执行后系统更新了 200 个软件包,但再次安装 GCC 时仍然提示冲突。

尝试二:选择性安装
在提示选择安装组件时,只选择第 3 项(mingw-w64-x86_64-gcc):
Enter a selection (default=all): 3
这次安装成功了!但只安装了 GCC 核心,没有完整的工具链。
验证安装
$ gcc --version
gcc.exe (Rev11, Built by MSYS2 project) 15.2.0
Copyright (C) 2025 Free Software Foundation, Inc.
GCC 已可用,但还需要确认路径。

发现第二个坑:路径不一致
$ where gcc.exe
D:\msys64\mingw64\bin\gcc.exe
注意 :MSYS2 安装在 D 盘,而非默认的 C 盘!
配置 Windows 环境变量
为了让 GCC 在 Windows 原生的 CMD/PowerShell 中可用,需要将路径添加到系统 PATH:
D:\msys64\mingw64\bin
添加步骤:
-
Win + R→ 输入sysdm.cpl→ 回车 -
"高级" → "环境变量"
-
"系统变量" 中找到
Path→ "编辑" -
"新建" → 输入
D:\msys64\mingw64\bin -
确定保存
验证(重新打开 CMD):
C:\Users\love>where gcc
D:\msys64\mingw64\bin\gcc.exe
C:\Users\love>gcc --version
gcc (Rev11, Built by MSYS2 project) 15.2.0
Copyright (C) 2025 Free Software Foundation, Inc.

最终验证
回到 Ollama 项目目录:
cd J:\PythonProjects4\ollama
go run . serve
服务成功启动,CGO 编译器问题彻底解决!
经验总结
-
MSYS2 安装 GCC 不是一键完成的 ------ 基础系统安装后,需要通过
pacman单独安装工具链 -
注意依赖冲突 ------
-git版本和稳定版本混用会导致冲突,必要时先卸载冲突包 -
路径确认很重要 ------ MSYS2 可能安装在非 C 盘位置,添加到 PATH 时要确认实际路径
-
环境变量生效需要重启终端 ------ 修改 PATH 后必须重新打开 CMD/PowerShell
常用命令备忘
# 强制刷新包数据库
pacman -Syyu
# 更新 MSYS2 系统
pacman -Syu
# 安装 GCC 工具链
pacman -S mingw-w64-x86_64-toolchain
# 查询已安装包
pacman -Q | grep gcc
# 移除包
pacman -R <package-name>
# 清理包缓存
pacman -Sc
参考环境:
-
Windows 10/11
-
MSYS2 (安装在 D:\msys64)
-
GCC 15.2.0 (Rev11)
-
Go 1.22+
参考文献
【笔记】在 MSYS2(MINGW64)中安装 Python 和 pip 并正确使用指南
【笔记】在 MSYS2(MINGW64)中正确安装 Poetry 的指南
【笔记】基于 MSYS2(MINGW64)的 Poetry 虚拟环境创建指南【笔记】在 MSYS2(MINGW64)中正确安装 Rust
【笔记】在 MSYS2(MINGW64)中安装 Python 工具链的记录
【笔记】在 MSYS2(MINGW64)中安装 python-maturin 的记录
【笔记】MSYS2 安装 Python 构建依赖记录Cython + Ninja + Meson + meson-python
【笔记】在 MSYS2 MINGW64 环境中降级 NumPy 2.2.6 到 2.2.4
【笔记】如何卸载 MSYS2 中不同工具链的 numpy 包
【笔记】在 MSYS2 MINGW64 环境中安装常用开发依赖包
【笔记】在 MSYS2 MINGW64 环境中安装构建工具链(CMake、GCC、Make)
【笔记】Windows系统部署suna基于 MSYS2的Poetry 虚拟环境backedn后端包编译失败处理
【笔记】MSYS2 的 MINGW64 环境 全面工具链
【技术笔记】AI Agent 项目 SUNA 部署:MSYS2 环境中 Python 版本从 3.12 降级至 3.11 的实操指南
AI Agent 项目 SUNA 部署环境搭建 - 基于 MSYS2 的 Poetry+Python3.11 虚拟环境
【笔记】解决MSYS2安装后cargo-install-update.exe-System Error
【笔记】旧版MSYS2 环境中 Rust 升级问题及解决过程
MSYS2+Rust+Poetry安装tokenizers失败的排查与解决LINK : fatal error LNK1181: cannot open file "python3.lib"
【技术笔记】MSYS2 指定 Python 版本安装方案
MSYS2 环境配置与 Python 项目依赖管理笔记
【笔记】MSYS2 的 MinGW64 环境中正确安装 Python 相关环境管理工具 (Poetry、Virtualenv、Pipenv 和 UV)
MSYS2 环境下 Python 开发配置(结合 PyCharm)使用笔记
【笔记】离个大谱!彻底解决Windows系统部署开源AI Agent项目SUNA的Frontend前端安装GTK库的问题
【AI Agent 项目 SUNA 部署】Windows 全版本 GTK 兼容与部署最佳实践(兼顾 Frontend 前端 和 Backend 后端 顺利部署)