交叉编译glib2.72.1
较早的版本编译起来比较费,要依赖别的库像libffi处理高级语言之间相互调用的问题,zlib等
较新的版本采用meson构建,会自动下载依赖库,所以比较方便。
现在glib源码:http://ftp.acc.umu.se/pub/GNOME/sources/glib/ 我这里下载的是最新的2.72.1
tar xvf glib-2.72.1.tar.xz
cd glib-2.72.1
新建编译脚本arm.sh
#!/bin/bash
if [ -d armarm_build ];then
rm -r armarm_build
fi
mkdir armarm_build
arch='arm-cortex_a9-linux-gnueabi-' #根据实际情况
sys_root=/opt/arm-cortex_a9/arm-cortex_a9-linux-gnueabi/sysroot/ #根据实际情况
echo [constants] > cross_file.txt
echo arch = '${arch}' >> cross_file.txt
echo [binaries] >> cross_file.txt
echo c = arch + 'gcc' >> cross_file.txt
echo cpp = arch + 'g++' >> cross_file.txt
echo ar = arch + 'ar' >> cross_file.txt
echo ld = arch + 'ld' >> cross_file.txt
echo srtip = arch + 'strip' >> cross_file.txt
echo sys_root = '${sys_root}' >> cross_file.txt
echo pkg_config_libdir = '${sys_root}/usr/lib/pkgconfig' >> cross_file.txt
echo [host_machine] >> cross_file.txt
echo system = 'linux' >> cross_file.txt
echo cpu_family = 'arm' >> cross_file.txt
echo cpu = 'armv7a' >> cross_file.txt #根据实际情况
echo endian = 'little' >> cross_file.txt
#类似于configure功能 meson configure 获取到可配置项
echo [project options] >> cross_file.txt
echo prefix = '/usr' >> cross_file.txt
echo selinux = 'disabled' >> cross_file.txt
echo libelf = 'disabled' >> cross_file.txt
#类似于执行configure
meson setup arm_build --cross-file cross_file.txt
cd arm_build
#编译 类似于make
ninja -C arm_build
DESTDIR=/opt/rootfs/xpylib/glib2.72.1 meson install #根据实际情况
没想到这么顺利,都不报错就安装成功了,心里没底去验证一下