编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

meson build 介绍(build memories)

wxchong 2024-09-16 07:18:29 开源技术 9 ℃ 0 评论

meson 是一个构建系统,用法大概是这样的:

你写了一个程序 test.c,需要编译成可执行文件

新建一个 meson.build 文件

填入如下内容:

project('test', 'c')
executable('test', 'test.c')

然后执行命令:

meson build
ninja -C build

就可以得到 可执行文件 build/test

这是最简单的一个meson build 脚本,meson还支持各种编译选项,库文件,头文件选项等,有点类似cmake,这里就不展开了,感兴趣的朋友可以去官网看看:

https://mesonbuild.com/Quick-guide.html

ubuntu 下安装方法:

pip3 install meson
apt install ninja

为什么关注到meson,是因为发现某些开源组件需要用 meson 构建。

但是我发现meson在查找第三方library时有一个问题,不知道是不是我的用法不对。即

不能查找含有版本号后缀的 库文件,比如:

有文件 libaudio.so.2 不能找到

但如果有文件 libaudo.so 能找到

cc = meson.get_compiler()
libdeps = cc.find_library('audio')
executable('test', 'test.c', dependencies: libdpes)

这是bug吗? 而且我发现官方文档阅读起来极不清晰,也不美观,原生态不如Makefile,高级不如 scons,不知道为什么要发明它。

下面是官方宣传材料

  • 概述

Meson 是一个开源构建系统,旨在实现极快的速度,更重要的是,尽可能地对用户友好。

Meson 的主要设计要点是,开发人员花在编写或调试构建定义上的每一刻都是浪费。 等待构建系统实际开始编译代码的每一秒也是如此。

  • 特征

多平台支持 Linux、macOS、Windows、GCC、Clang、Visual Studio 等

支持的语言包括 C、C++、D、Fortran、Java、Rust

在一个非常可读和用户友好的非图灵完整 DSL 中构建定义

许多操作系统以及裸机的交叉编译

在不牺牲正确性的情况下针对极快的完整和增量构建进行了优化

与发行版软件包一起使用的内置多平台依赖项提供程序

有趣!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表