认识meson 的使用

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

认识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 支持不同的构建类型,如 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'

参考:

官网:

The Meson Build system

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码思途远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值