

新闻资讯
技术学院Meson 是专为 C/C++ 设计的现代构建系统,语法 Pythonic、简洁安全,构建 C++ 项目只需三步:安装 meson+ninja、编写 meson.build、执行 setup+build+install;支持调试、交叉编译、测试与 IDE 集成。
Meson 是一个现代、快速、易用的构建系统,专为 C、C++ 等编译型语言设计,同时天然支持 Python(其构建脚本本身就是用 Python 写的,语法也高度 Pythonic)。它比 CMake 更简洁,比 Make 更安全,比 Autotools 更现代。用 Meson 构建 C++ 项目,核心就三步:写 meson.build、配置构建目录、编译安装。
Meson 本身是 Python 包,依赖 Ninja(默认构建后端,比 make 快且并行友好):
pip3 install meson ninja(建议用用户级安装:--user)pip install meson ninja,确保 ninja 在 PATH 中meson --version 和 ninja --version
根目录下新建 meson.build,语法接近 Python:缩进有意义、用函数调用声明目标、支持变量和条件逻辑。例如一个简单 C++ 可执行程序:
project('hello-world', 'cpp', version: '0.1.0')
声明可执行文件,自动探测源码依赖
exe = executable('hello',
'src/main.cpp',
install: true
)
可选:添加依赖(如 Boost、fmt)
fmt_dep = dependency('fmt', required: false)
exe = executable('hello', 'main.cpp', dependencies: [fmt_dep])
关键点:
project() 必须是第一行,指定名字、语言、版本executable() / library() 是核心构建目标函数meson.build 所在位置的;支持 glob(如 files('src/*.cpp'))dependency() 声明外部库,Meson 自动处理 pkg-config、CMake Find 模块或内置查找逻辑Meson 采用“源码分离构建”(out-of-tree),不污染源码目录:
meson setup builddir(首次运行会创建 builddir 并生成 Ninja 文件)meson configure builddir 或直接 meson setup builddir(自动检测变更)ninja -C builddir(等价于 cd builddir && ninja)ninja -C builddir install(按 install_dir 或前缀安装,默认 /usr/local)让 Meson 更好服务 C++ 开发:
meson setup builddir --buildtype debug --warnlevel 3
cross-file.ini,用 --cross-file cross-file.ini 参数test() 函数注册,ninja -C builddir test 运行custom_target() + run_command(),支持输入/输出依赖追踪Meson 不是“另一个 CMake”,它是用 Python 思维重构构建逻辑的结果:声明式目标、显式依赖、无隐式规则、错误提示友好。写一个中等 C++ 库,meson.build 通常不到 30 行,却能覆盖多平台、多配置、依赖管理、测试集成——真正把构建从负担变成表达。