常用库之六:ibfontconfig以及libexpat的交叉编译

来源:互联网 发布:88端口的作用是什么 编辑:程序博客网 时间:2024/06/05 07:55

    开发平台:Ubuntu11.04

    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)

    源码包:fontconfig.tar.bz2(可从http://download.csdn.net/detail/npy_lp/3831341上下载)

 

    Fontconfig是字体相关的函数库,用于配置、定制全系统的字体,或将字体提供给应用程序使用。此库是由Keith Packard开发维护的。

    须要先交叉编译expat-2.0.0.tar.gz,因为fontconfig依赖于libexpat且提供的交叉编译器arm-gcc-4.1.1.tar.bz2还未支持此库: 

$ tar zvxf expat-2.0.0.tar.gz$ cd expat-2.0.0$ ./configure CC=arm-linux-gnu-gcc --host=arm-linux --prefix=$PWD/_install$ make && make install

    把_install目录下生成的include和lib目录全部拷贝到交叉编译器中(这里假设你把arm-gcc-4.1.1.tar.bz2解压在$HOME目录下): 

$ cp -a include/ lib/ $HOME/4.1.1/arm-linux-gnu/ 

    交叉编译fontconfig-2.4.2.tar.gz:

    在使用./configure配置之前,先确认交叉编译器是否已支持libexpat,否则会提示以下错误信息: 

configure: WARNING: Cannot find usable expat library. Trying to use libxml2 as fallback.configure: error: Package requirements (libxml-2.0 >= 2.6) were not met:No package 'libxml-2.0' found

    还要通过--with-freetype-config配置选项来指定fontconfig所依赖库freetype的头文件和库所在目录的路径。从$HOME/4.1.1/arm-linux-gnu/bin目录下拷贝freetype-config至$HOME目录下,并修改其中的变量prefix为$HOME/4.1.1/arm-linux-gnu,即: 

prefix=$HOME/4.1.1/arm-linux-gnu

    然后就可以开始交叉编译fontconfig库了: 

$ tar zvxf fontconfig-2.4.2.tar.gz$ cd fontconfig-2.4.2$ ./configure CC=arm-linux-gnu-gcc --prefix=$PWD/_install --host=arm-linux --with-arch=arm --with-freetype-config=$HOME/freetype-config //指定修改后的freetype-config$ make && make install

    交叉编译最新版本的fontconfig库fontconfig-2.8.0.tar.gz(可从http://www.freedesktop.org/wiki/Software/fontconfig上下载): 

$ tar zvxf fontconfig-2.8.0.tar.gz$ cd fontconfig-2.8.0/$ ./configure CC=arm-linux-gnu-gcc --prefix=$PWD/_install --host=arm-linux --with-arch=arm --with-freetype-config=$HOME/freetype-config$ make && make install