Ubuntu 18/amd64编译GLib 2.62:meson _build含义及使用缘由咨询
关于GLib编译中
meson _build里_build的疑问解答 嗨,刚接触Meson的话碰到这个问题很正常,我来给你掰扯清楚:
1. _build到底是什么?
它既不是GLib源码里的子模块,也不是预存在的文件,而是Meson构建系统里通用的构建目录占位符。简单说,这是一个专门用来存放构建过程中所有生成文件的目录——包括编译后的二进制、中间临时文件、配置脚本等等。
Meson的最佳实践就是用这种“分离构建目录”的方式,好处特别明显:
- 你的GLib源码目录会一直保持干净,不会被各种编译产物污染;
- 后续如果想清理构建环境,直接删掉这个
_build目录就行,完全不影响源码; - 甚至你可以创建多个不同的构建目录(比如
build_debug、build_release),分别用来编译不同配置的版本。
2. 为什么GNOME指南要求用这个命令?
这是GNOME生态和Meson社区里的惯用命名惯例,用_build作为示例目录名很普遍,方便大家统一操作。当然你完全可以换成自己喜欢的名字,比如build或者glib_build,只要对应修改命令就行——比如执行meson glib_build也是完全有效的,Meson会自动创建这个目录并初始化。
3. 实际操作步骤(针对你的情况)
因为你在源码顶层目录没找到_build,这完全正常,直接执行下面的命令就行:
# 在GLib源码顶层目录执行,Meson会自动创建_build目录并初始化构建配置 meson _build # 进入构建目录开始编译 cd _build ninja # 如果需要安装编译好的GLib,执行下面的命令(可能需要sudo权限) sudo ninja install
补充:Meson的基础逻辑
和传统的autotools(./configure && make)不同,Meson从设计之初就推荐分离构建目录,所以你不需要在源码目录里手动创建这个构建文件夹,执行meson <目录名>的时候它会自动帮你创建并完成初始化配置。
内容的提问来源于stack exchange,提问作者Clark Hathaway
相关产品推荐
相关产品推荐

