网站首页 > 开源技术 正文
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 中构建定义
许多操作系统以及裸机的交叉编译
在不牺牲正确性的情况下针对极快的完整和增量构建进行了优化
与发行版软件包一起使用的内置多平台依赖项提供程序
有趣!
猜你喜欢
- 2024-09-16 MESON发布适用于Vision Pro的天气体验应用《SunnyTune》
- 2024-09-16 MESON推出无代码XR开发系统“GAUGUIN”
- 2024-09-16 编译工具meson+ninja简介(dpdk编译工具)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)