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
一切顺利的话就已经安装到指定位置了。