Windows 下使用MSYS2编译 GitHub 项目源码
- Linux
- 8天前
- 81热度
- 0评论
Windows 下使用MSYS2编译 GitHub 项目源码
本文介绍如何在 Windows 系统中从源码编译 GitHub 上的 C/C++ 项目,主要介绍两种方式:
- 使用 MSYS2 (x64 / ARM64)
- 使用 Microsoft Visual Studio (x64)
一、基础概念
MSYS2 是一个在 Windows 上提供类 Unix 环境的工具集,全称为 Minimal SYStem 2。
它基于 Cygwin 和 MinGW-w64,旨在让开发者能够在 Windows 下轻松编译和运行使用 GNU 工具链(如 gcc, make, bash, git)的项目。
MSYS2 的官网地址为:https://www.msys2.org/
简单来说,MSYS2 是 Windows 上的 Linux 命令行生态桥梁,让你可以用 Linux 的方式去构建开源项目。
类比于Linux终端下通过 ./configure && make && make install 这类熟悉的命令完成源码编译、依赖安装和程序运行
MSYS2 主要由三部分组成:
| 组成部分 | 说明 | 主要用途 |
|---|---|---|
| MSYS | 基于 Cygwin 的最小系统层 | 提供 POSIX 兼容的 Shell 环境(bash 等) |
| MinGW-w64 | Windows 原生 GCC 编译工具链 | 编译生成 .exe 原生可执行文件 |
| Pacman 包管理器 | 来自 Arch Linux 的包管理工具 | 管理软件包、自动更新依赖 |
与 Cygwin、WSL 的区别
| 对比项 | MSYS2 | Cygwin | WSL (Windows Subsystem for Linux) |
|---|---|---|---|
是否原生生成 .exe |
✅ 是 | ❌ 否(依赖 POSIX 层) | ✅ 是(在 Linux 子系统内运行) |
| 包管理器 | ✅ Pacman | ❌ 无(手动安装) | ✅ apt/dnf 等 |
| 系统依赖 | 无需 Hyper-V | 无需 Hyper-V | 需要 Hyper-V 支持 |
| 适合场景 | 构建跨平台 C/C++ 项目 | POSIX 工具使用 | 完整 Linux 环境 |
二、准备工作
1. 安装 CMake
- 前往 CMake 官方网站 下载最新版本。
- 安装时选择以下任意一项:
- ✅ Add CMake to the system PATH for all users
- ✅ Add CMake to the system PATH for the current user
安装完成后,可在命令行中验证:
cmake --version
2. 获取依赖库
- 在目标项目的 GitHub 页面上点击绿色的 Code → Download ZIP。
- 解压后将所有文件放置在:
C:\project-deps
最终目录结构示例:
C:\project-deps
├───clang
│ └───arm64
│ ├───include
│ └───lib
├───gcc
│ └───x64
│ ├───include
│ └───lib
└───msvc2022
└───x64
├───include
└───lib
三、 使用 MSYS2 构建
1. 安装 MSYS2
前往 https://www.msys2.org 按照页面步骤安装。
安装完成后运行以下命令更新环境:
pacman -Syu
关闭窗口后重新打开,再次执行:
pacman -Su
2. 编译 x64 项目
打开 ucrt64.exe 终端,依次执行以下命令:
# 安装必要工具
pacman -S mingw-w64-ucrt-x86_64-gcc git make
# 克隆源码
git clone https://github.com/your-project/your-project.git
# 创建构建目录
mkdir your-project/build && cd your-project/build
# 使用 CMake 生成 Makefile
"c:\Program Files\CMake\bin\cmake.exe" .. -G "Unix Makefiles" -DPROJECT_DEPS=c:/project-deps/gcc/x64
# 开始编译
make -j$(nproc)
3. 编译 ARM64 项目
打开 clangarm64.exe 或相应的 MSYS2 终端,然后:
pacman -S mingw-w64-clang-aarch64-gcc git make
git clone https://github.com/your-project/your-project.git
mkdir your-project/build && cd your-project/build
"c:\Program Files\CMake\bin\cmake.exe" .. -G "Unix Makefiles" -DPROJECT_DEPS=c:/project-deps/clang/arm64
make -j$(nproc)
四、使用 Visual Studio 构建
- 安装 Visual Studio 2022(含 Desktop development with C++ 组件)。
- 打开 x64 Native Tools Command Prompt for VS 2022。
- 运行以下命令:
git clone https://github.com/your-project/your-project.git
cd your-project
mkdir build && cd build
cmake .. -G "Visual Studio 17 2022" -A x64 -DPROJECT_DEPS=c:/project-deps/msvc2022/x64
cmake --build . --config Release
五、构建结果
完成后,生成的可执行文件或库文件一般位于:
your-project/build/
└───Release
└───your-project.exe
六、 小结
| 步骤 | 工具 | 命令关键点 |
|---|---|---|
| 准备环境 | CMake + MSYS2 | pacman -S、cmake |
| 下载依赖 | GitHub | Download ZIP 或 git clone |
| 生成构建系统 | CMake | -G "Unix Makefiles" 或 VS 生成器 |
| 编译 | make / MSBuild | make -j$(nproc) 或 cmake --build |
💡 提示:
若编译报错,请检查CMakeLists.txt中依赖路径、库文件及目标架构是否一致。