认识Meson的使用

文摘   2024-08-26 22:11   广东  

meson 关注+星号公众号,不容错过精彩

作者:HywelStar

Hi,  对于做过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 支持不同的构建类型,如 debugrelease,可以通过 --buildtype 选项指定:

    meson setup builddir --buildtype=release

9. 生成和使用编译缓存

  • 使用 ccache 来加速编译,Meson 支持 ccache 的自动检测和使用,可以通过设置环境变量 CCCXX 来启用:

    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'

关于Meson 后续将会以Gstreamer 编译为代表进行实例操作。

Meson 参考网:

The Meson Build system

[https://mesonbuild.com/]



往期推荐



嵌入式开发常用技巧

如何模拟一个弱网环境

网络带宽测试 iperf 工具介绍

给代码生成文件头部与函数注释

嵌入式程序员要不要会英语?

嵌入式面试官喜欢问什么?


码思途远
一位码农的日常分享,探索软件技术知识与新闻的数字十字路口。