Meson 构建系统入门与实战
一、什么是 Meson?
Meson 是一个快速、用户友好的现代构建系统,专为 C/C++/Python 等语言设计。它使用 Ninja 作为默认后端,构建速度极快,语法简洁(类似 Python),特别适合:
- 编译 pybind11 / Cython 的 Python 扩展
- 跨平台项目(Windows / Linux / macOS)
- 大型 C++ 项目
优势:比 CMake 更简洁,比 Makefile 更安全,比 setuptools 更强大。
二、安装 Meson
前提:已安装 Python 和 pip
# 安装 Meson 和 Ninja(推荐方式)
pip install meson ninja
# 验证安装
meson --version
ninja --version
Windows 用户还需安装 Visual Studio 2019+(含 C++ 桌面开发工具) Linux 用户需安装 build-essential(Ubuntu)或 gcc-c++(CentOS) macOS 用户需安装 Xcode Command Line Tools:xcode-select --install
三、Meson 核心概念
| 概念 | 说明 |
|---|---|
meson.build | 项目构建脚本(必须放在项目根目录) |
project() | 声明项目名称、语言、版本 |
dependency() | 查找外部依赖(如 pybind11、OpenCV) |
shared_module() | 生成 Python 扩展模块(.so / .pyd) |
builddir | 构建输出目录(必须 out-of-source) |
四、Hello World:编译一个 pybind11 扩展
步骤 1:创建项目结构
myproject/
├── meson.build # ← 构建脚本
└── src/
└── module.cpp # ← C++ 源码
步骤 2:编写 C++ 代码 (src/module.cpp)
#include <pybind11/pybind11.h>
int add(int a, int b) {
return a + b;
}
PYBIND11_MODULE(mymodule, m) {
m.() = ;
m.(, &add, );
}

