交叉编译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 arm_build ];then
rm -r arm_build
fi
mkdir arm_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 "strip = 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 "pkgconfig = 'pkg-config'" >> 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 #根据实际情况

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

 

--------------------------------------------------------------------

1.编译ffi

./configure --prefix=/opt/rootfs/xpylib/ffi \
CC=arm-cortex_a9-linux-gnueabi-gcc \
--host=arm-linux
make && make install

 

第二次编译有出错,手动指定libffi的路径

echo "pkg_config_libdir = '/opt/rootfs/xpylib/ffi/lib/pkgconfig'" >> cross_file.txt

 

 
posted @   MoonXu  阅读(1028)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
历史上的今天:
2020-04-28 关闭所有已打开的文件和关闭应用
2020-04-28 TypeError: include() got an unexpected keyword argument 'app_name'
2020-04-28 127.0.0.1:8000/admin
2020-04-28 django 'staticfiles' is not a registered tag library.
2019-04-28 qt
点击右上角即可分享
微信分享提示