阿里聚安全_编译可在Android上运行的依赖库(一):glib库

本文详述在Ubuntu系统上,如何使用Android NDK进行交叉编译,以便在Android设备上运行glib库。文章介绍了编译环境设置、依赖库的编译,如libiconv、gettext、pcre和libffi,并提供了解决交叉编译中遇到的错误的方法,如AC_DEFINE宏未定义问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这是系列文章,它们由《编译可在Android上运行的glib库》及其他4篇文章组成,这4篇文章在“编译依赖库”一节中列出。由于glib库依赖于其他第三方库,所以需要先将依赖的第三方库交叉编译到Android平台上才能成功的编译glib库,系列文章中除《编译可在Android上运行的glib库》外的其他交叉编译文章均是介绍如何对glib依赖库进行交叉编译。以上,所以叫系列文章,因为这些文章完整的介绍了如何编译可在Android上运行的glib库。
文章价值
这些文章的核心价值是Android平台的交叉编译经验和提供了新的编译方式。有些人把linux库移植到Android上的时候将makefile翻译为Android.mk文件(据我所知有不少人都是这样做的),而使用本文中的方法可以直接利用原有的makefile文件进行交叉编译。
编译环境
本文在Ubuntu 64位系统上对glib项目进行交叉编译。
约定
下文中的”NDK”若无特殊说明均指”Android NDK”。

步骤
  • 1.下载并安装Android NDK
下载并安装Android NDK的过程在这里不做介绍。
下载gitlib
git clone https://github.com/GNOME/glib.git

2. 安装必要工具
- GNU autoconf 2.62
- GNU automake 1.11
-GNU libtool2.2
-GNU gettext 0.10.40
-pkg-config 0.16
-libffi 3.0.0

3. 设置NDK和SYSROOT环境变量
设置NDK环境变量
export NDK=<NDK目录>
export PATH=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
在”$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin”目录中包含了arm-linux-androideabi-gcc、arm-linux-androideabi-g++等交叉编译工具,不过交叉编译工具的路径根据NDK版本和编译工具版本的不同会有所变化。
设置SYSROOT环境变量
export SYSTROOT="$NDK/platforms/android-21/arch-arm"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值