一分钟快速学会使用meson构建C语言项目
meson是用python写的一个程序构建工具,
meson的官网在https://mesonbuild.com/index.html
,这里有meson的使用手册,
这个手册很好用。meson和make一样,需要写描述文件告诉meson要构建什么,这个描述文件 就是meson.build
,meson
根据meson.build
中的定义生成具体的构建定义文件build.ninja
, ninja
根据build.ninja
完成具体构建。所以,不像make直接根据Makefile文件完成构建,meson 需要和ninja配合一起完成构建。
一.不同系统安装Meson和Ninja工具包
在 Ubuntu 上安装 Meson 和 Ninja:
1 | 更新软件包列表 |
在 CentOS 上安装 Meson 和 Ninja:
1 | 更新软件包列表 |
二.构建简单的C语言项目
建立一个项目目录meson_project,包括多个源文件和头文件,在这个示例中,我将展示如何组织一个稍微复杂的项目。
2.1 项目结构
假设你的项目有以下结构:
1 | project_root/ #项目源码目录 |
main.c
1 |
|
util/helper.c
1 | include <stdio.h> |
util/helper.h
1 | ifndef HELPER_H |
include/project.h
1 | ifndef PROJECT_H |
meson.build
这个文件定义了一个my_project的工程,并且定义了my_hello这个构建目标,以及使用的源文件,头文件等等。
1 | project('my_project', 'c') |
native-file.txt
该文件指定一些构建要用的参数
1 | [binaries] |
2.2 完整构建meson_project项目
1. meson setup build 创建构建目录
这个是告诉meson在哪个目录下构建(这里是源码根目录下的build目录),meson一定要在一个和源码独立的目录里做构建,这样多次构建可以指定不同的构建目录和构建配置,相互之间不受影响,比如对于同样的程序,构建一个riscv版本可以这样指定构建目录:
1 | meson setup --cross-file ./rv_cross_file rv_builddir |
开始创建build目录
1 | meson setup build # 创建build目录 |
2.根据native_file.txt配置文件,指定构建目录
1 | ls |
3.使用ninja将源码编译并输出到build目录下
1 | ninja -C build -v |
4.进入build目录查看构建结果
1 | 进入build目录查看构建结果 |
5.修改main.c文件,重新构建项目
1 | vim main.c |
回到根目录meson_project重新构建.
1 | meson_project $ meson build --cross-file native-file.txt |
- 本文作者: CoderSong
- 本文链接: https://jack-song-gif.github.io/2024/02/28/一分钟学会meson构建项目/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!