freetype-2.2.1 for arm 编译全过程

一.编译环境
1.编译freetype 将要使用到的源码包
freetype-2.2.1.tar.bz2
zlib-1.2.3.tar.gz

2.系统环境
Red Hat Linux9.0
ARM 交叉编译环境 2.95.3( 路径为:/usr/local/arm/2.95.3 )

二.编译过程
1.创建目录,解压源码
mkdir  /ft2
mv freetype-2.2.1.tar.bz2 zlib-1.2.3.tar.gz  /ft2
cd /ft2
tar -jxvf freetype-2.2.1.tar.gz
tar -zxvf zlib-1.2.3.tar.gz
cp -rf freetype-2.2.1 freetype-x86
//编译arm版本的freetype 库的时候需要 freetype在x86版本中的apinames 工具
//编译x86版本成功后在freetype-x86/objs/目录下有此工具
//虽然在编译arm版本时会生成apinames工具,但是是arm版本,因此不能运行,
//在编译arm的freetype时会有这样的错误提示:apinames:cannot execute binary file

2.新建buildarm脚本
buildarm脚本包括一下内容:
#! /bin/bash
export PATH=/usr/local/arm/2.95.3/bin:$PATH
make

修改buildarm脚本为有可以执行的权限:
chmod 777 buildarm


3.编译freetype的x86版本
cd freetype-x86
./configure
make

4.编译zlib的arm版本( 在编译freetype的arm版本时要用到arm版本libz库)
cd  zlib-1.2.3
把buildarm脚本拷贝到zlib-1.2.3目录
./configure
./buildarm

把libz.a 拷贝到/usr/local/arm/2.95.3/arm-linux/lib(这个路径可能不一样)


5.编译freetype的arm版本
cd freetype-2.2.1
把buildarm 拷贝到freetype-2.2.1目录
./configure
./buildarm

注意:
在出现以下错误时/ft2/freetype-2.2.1/src/gzip/ftgzip.c:45: zlib.h: No such file or directory
说明没有找到zlib.h头文件,可以修改ftgzip.c文件中的45行 把#include <zlib.h> 改成#include "zlib.h"
这是应为freetype中已经有zlib.h这个头文件了。修改好了以后继续执行./buildarm


在出现以下错误时/ft2/freetype-2.2.1/objs/apinames: cannot execute binary file
请把freetype-x86中的freetype-x86/objs/apinames  拷贝到 freetype-2.2.1/objs/apinames中,覆盖freetype-2.2.1/objs/目录中的apinames
然后继续执行./buildarm

排除上面的错误以后就可以正常编译通过了.
你所要的freetype库文件在freetype-2.2.1/objs/.libs/路径下面

最后大功告成。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这份文档提供了FreeType 2函数库设计与实现的细节。本文档的目标是让开发人员更好的理解FreeType 2是如何组织的,并让他们扩充、定制和调试它。 首先,我们先了解这个库的目的,也就是说,为什么会写这个库: * 它让客户应用程序方便的访问字体文件,无论字体文件存储在哪里,并且与字体格式无关。 * 方便的提取全局字体数据,这些数据在平常的字体格式中普遍存在。(例如:全局度量标准,字符编码/字符映射表,等等) * 方便的提取某个字符的字形数据(度量标准,图像,名字,其他任何东西) * 访问字体格式特定的功能(例如,SFNT表,多重控制,OpenType轮廓表) Freetype 2的设计也受如下要求很大的影响: * 高可移植性。这个库必须可以运行在任何环境中。这个要求引入了一些非常激烈的选择,这些是FreeType2的低级系统界面的一部分。 * 可扩展性。新特性应该可以在极少改动库基础代码的前提下添加。这个要求引入了非常简单的设计:几乎所有操作都是以模块的形式提供的。 * 可定制。它应该能够很容易建立一个只包含某个特定项目所需的特性的版本。当你需要集成它到一个嵌入式图形库的字体服务器中时,这是非常重要的。 * 简洁高效。这个库的主要目标是只有很少cpu和内存资源的嵌入式系统。 这份文档的其他部分分为几个部分。首先,一些章节介绍了库的基本设计以及Freetype 2内部对象/数据的管理。 接下来的章节专注于库的定制和与这个话题相关的系统特定的界面,如何写你自己的模块和如何按需裁减库初始化和编译

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值