Windows 下使用MSYS2编译 GitHub 项目源码

Windows 下使用MSYS2编译 GitHub 项目源码

本文介绍如何在 Windows 系统中从源码编译 GitHub 上的 C/C++ 项目,主要介绍两种方式:

  • 使用 MSYS2 (x64 / ARM64)
  • 使用 Microsoft Visual Studio (x64)

一、基础概念

MSYS2 是一个在 Windows 上提供类 Unix 环境的工具集,全称为 Minimal SYStem 2
它基于 CygwinMinGW-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

  1. 前往 CMake 官方网站 下载最新版本。
  2. 安装时选择以下任意一项:
    • Add CMake to the system PATH for all users
    • Add CMake to the system PATH for the current user

安装完成后,可在命令行中验证:

cmake --version

2. 获取依赖库

  1. 在目标项目的 GitHub 页面上点击绿色的 Code → Download ZIP
  2. 解压后将所有文件放置在:
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 构建

  1. 安装 Visual Studio 2022(含 Desktop development with C++ 组件)。
  2. 打开 x64 Native Tools Command Prompt for VS 2022
  3. 运行以下命令:
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 -Scmake
下载依赖 GitHub Download ZIPgit clone
生成构建系统 CMake -G "Unix Makefiles" 或 VS 生成器
编译 make / MSBuild make -j$(nproc)cmake --build

💡 提示:
若编译报错,请检查 CMakeLists.txt 中依赖路径、库文件及目标架构是否一致。