Glib学习(26) meson编译glib

glib源码下载:http://ftp.gnome.org/pub/gnome/sources/glib/
glib帮助文档:https://developer.gnome.org/glib/

从2.59.1版本开始去掉了autoconfig编译工具,改为使用meson构建工程。
meson是用Python语言开发的构建工具。Meson 旨在开发最具可用性和快速的构建系统。提供简单但强大的声明式语言用来描述构建。原生支持最新的工具和框架,如 Qt5 、代码覆盖率、单元测试和预编译头文件等。利用一组优化技术来快速变异代码,包括增量编译和完全编译。
我体会到使用meson的一个优点是当工程依赖一些库没有时,meson可以到git上自动下载并帮你安装,相比config要好。
下面我们来开始进行glib的编译,首先你需要确保你的电脑安装了meson,并且编译glib需要meson版本高于0.47.0

命令下载

需要Python3来下载meson。
python3这里就不介绍,sudo apt install python3
安装meson

pip3 install --user meson

如果提示无法找到版本

Collecting meson
  Could not find a version that satisfies the requirement meson (from versions: )
No matching distribution found for meson

可能是网络问题,需要使用国内镜像

pip3 install --user meson -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

这样meson你的工具就下载完了,如果你直接在终端中输入meson -v出现了版本号那就完成了,如果命令未找到,你就需要找到meson命令下载位置,将meson拷贝到/usr/bin中。
我的meson命令位置在~/.local/bin
你可以通过使用pip3卸载meson的方法找到存储位置

~$ pip3 uninstall meson
Uninstalling meson-0.54.2:
  /home/xxxx/.local/bin/meson
/usr/bin$ sudo ln -s ~/.local/bin/meson .

解压glib源码

tar xf glib-@GLIB_VERSION@.tar.gz
cd glib-@GLIB_VERSION@

构建

创建编译中间目录

mkdir _build
meson --prefix=/home/renz/glibtest/glib/ _build

其中--prefix=是安装目录,如果你要默认安装,可以不需要此选项

下载依赖

如果你的网络能够连接git,那么当glib构建时,遇到需要的依赖库没有,则会自己进行下载,我的环境缺少libffi,碰巧我的环境无法下载git源码,我就需要自己安装libffi库。

sudo apt install libffi-dev libffi6

编译和安装

当我们构建完成后我们需要进行编译,编译需要Ninja命令,同理,需要使用pip3进行下载

pip3 install --user Ninja -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

为了方便我们把它拷贝到/usr/bin

sudo cp .local/bin/ninja /usr/bin/

编译命令

ninja -C _build

安装命令

ninja -C _build install

一切顺利的话就已经安装到指定位置了。

 

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页