用于Android系统的pango + cairo交叉编译

        做Android系统下的开发也有几年了,这几年间也遇到过很多问题,大多是从网上搜索解决办法,虽然不是都能找到完美的解决办法,但是基本对于结局问题是有帮助的,所以一直也没有整理遇到的问题(主要是太懒了!!!)。但本次遇到的问题要求时间急短,又苦于网上没有介绍的相关文章,着实让我头疼了两天,好在靠着不错的运气解决了问题。痛苦过后痛定思痛,决定将这几天的成果总结一下,方便自已和有需要的人吧。

        废话不多说了,先介绍一下我调查的背景吧。我们可以算是在Android系统上做二次开发吧,framework层也修改了很多,其中有应用使用cairo描画,但是由于cairo对于字体的描画支持的很简单,不能正确显示阿拉伯语等语言,所以经过调查后决定使用pango + cairo解决这一问题。

        看起来是两个库,但是真正编译时却需要很多依赖,需要依次编译:libiconv, libffi, gettext, glibc, freetype, fontconfig, libpng, zlib, pixman, cairo, lilbxml2, pango这些库,并且首先需要下载Android NDK。

安装NDK

        从下面这个链接下载r10e版本,不要问我为什么是r10e,我也不知道,国外大大说的。。。

        https://developer.android.google.cn/ndk/downloads

        解压NDK,然后在用里面的工具创建单独的工具链:

$ ${NDK}/build/tools/make-standalone-toolchain.sh \
--toolchain=arm-linux-androideabi-4.9 \
--stl=gnustl \
--arch=arm \
--ndk-dir=/opt/android-ndk-r10e \
--system=linux-x86_64 \
--install-dir=/opt/android-ndk-toolchain-10e \
--platform=android-18

安装需要的工具包

$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install build-essential
$ sudo apt-get install pkg-config automake autoconf libtool
$ sudo apt-get install zlib1g-dev libffi-dev libtool-bin

下面的是编译需要的环境变量,这里copy了别的大大的:

#!/bin/sh
# Android cross-compile environment setup script for Glib
# Author  : Zengwen Yuan
# Date    : 2016-07-16
# Version : 2.1
 
# Android NDK sources and standalone toolchain is put here
export DEV=/opt
 
# All the built binaries, libs and their header will be installed here
export PREFIX=/opt/android
 
# Don't mix up .pc files from your host and build target
export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
 
# GCC for Android version to use
# 4.9 is the only available version since NDK r11!
export GCC_VER=4.9
 
# The building system we are using (Linux x86_64)
export BUILD_SYS=x86_64-linux-gnu
 
# Set Android target API level
export ANDROID_API=19
 
# Set Android target arch
export ANDROID_ARCH=arm
 
# Set Android target name, according to Table 2 in
# https:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值