Java教程

交叉编译glib2.72.1

本文主要是介绍交叉编译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 #根据实际情况

没想到这么顺利,都不报错就安装成功了,心里没底去验证一下

 

这篇关于交叉编译glib2.72.1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!