认识meson 的使用
认识meson 的使用
Hi, 我是Hywelstar, 对于做过Linux 嵌入式的朋友都接触过Makefile, cmake 等这类, 但是对于meson可能接触不多,今天主要记录下关于meson 如何去编译,后续可能用上,首先需要知道的是Meson 是一个由 Python 实现的开源项目,绝妙的一句是:开发人员花费在构建调试上的每一秒都是浪费。
Meson 是一个现代的构建系统,设计用于速度和简便性,适用于各种规模的项目。以下是使用 Meson 构建项目的基本步骤和一些重要的概念。
1. 安装 Meson
- 在 Ubuntu 上,你可以通过以下命令安装 Meson:
sudo apt-get install meson
2. 设置构建目录
- 使用
meson setup
命令设置构建目录。可以通过--prefix
选项指定安装路径。meson setup builddir --prefix=/path/to/install
builddir
是你希望生成构建文件的目录。--prefix
指定安装路径(例如/usr/local
或者当前目录下的_install
目录)。
3. 编译项目
- 进入构建目录,并运行以下命令进行编译:
meson compile -C builddir
-C
选项指定编译目录。
4. 安装项目
- 编译完成后,使用以下命令将编译好的文件安装到指定的路径:
meson install -C builddir
- 这个命令会将文件安装到你在
--prefix
中指定的路径。
- 这个命令会将文件安装到你在
5. 重新配置项目
- 如果需要更改配置,可以使用
meson setup --reconfigure
来更新构建目录的配置。meson setup --reconfigure builddir --prefix=/new/path
6. 重要概念
meson.build
文件: 每个项目的构建脚本文件,定义了项目的依赖、编译选项、安装目标等。subprojects
目录: 可以包含项目的子模块或依赖项目,通常通过wrap
文件来管理。pkg-config
: 用于查找依赖库的工具,Meson 会自动处理大部分的依赖查找。gobject-introspection
: 如果项目中需要生成 GObject 类型库的绑定,Meson 会自动处理这些绑定的生成。
7. 自定义安装路径
- 通过
--prefix
可以指定项目安装的根目录。例如:meson setup builddir --prefix=/home/user/custom_install
- 然后在编译和安装后,所有生成的文件都会安装在
/home/user/custom_install
路径下的相应目录中。
8. Debug/Release 配置
- Meson 支持不同的构建类型,如
debug
和release
,可以通过--buildtype
选项指定:meson setup builddir --buildtype=release
9. 生成和使用编译缓存
- 使用
ccache
来加速编译,Meson 支持ccache
的自动检测和使用,可以通过设置环境变量CC
和CXX
来启用:export CC='ccache gcc' export CXX='ccache g++'
10. 交叉编译配置
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7'
endian = 'little'
[binaries]
c = '/path/to/arm-linux-gnueabihf-gcc'
cpp = '/path/to/arm-linux-gnueabihf-g++'
pkgconfig = '/path/to/arm-linux-gnueabihf-pkg-config'
参考:
官网:
The Meson Build system