一、编译和移植
1) ./configure CC=/opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-gcc --host=arm-linux prefix=$PWD/_install
/******************************************************
CC : 指定编译工具
--host 指定目标平台
prefix 指定make install后生成的lib和include防止目录
*******************************************************/
2) make
3) make install
上述命令属于xxx-gcc编译工具编译freetype,生成库文件和头文件存放在freetype/_install目录
二、裁剪
1) 修改文件modules.cfg
(1)字体库的支持
FONT_MODULES宏,此处以.ttf格式的字体库为例。
-
# TrueType font driver.
-
#
-
# This driver needs the `sfnt' module.
-
FONT_MODULES += truetype
.ttf对应FONT_MODULES是truetype,保留。其他FONT_MODULES全部#注释。
(注意:this driver needs the 'sfnt' module 所以,FONT_MODULES += sfnt保留,同理,psnames保留)
-
# SFNT files support. If used without `truetype' or `cff', it supports
-
# bitmap-only fonts within an SFNT wrapper.
-
#
-
# This driver needs the `psnames' module.
-
FONT_MODULES += sfnt
(2) HINTING_MODULES宏
使用上述方法,根据 ‘autofit’ 和‘pshinter’是否被需要,我使用的TrueType不需要这个部分,所以注释掉。
(3) RASTER_MODULES宏
阅读文件内容,‘smooth’ 和 ‘raster’至少保留一个。
(4) AUX_MODULES宏
.ttf关联‘psnames’,保留!cache gzip lzw bzip2 gxvalid各种table和压缩解压部分,注释掉。
(5) BASE_EXTENSIONS宏
全部注释掉。
(注:(4)(5)的注释会影响掉链接freetype库的某些函数和数据类型失败,请根据名字重新取消注释编译freetype)。
本人为了支持ttf字库生成位图,保留的部分有:
FONT_MODULES += truetype
FONT_MODULES += sfnt
RASTER_MODULES += smooth
AUX_MODULES += psnames
BASE_EXTENSIONS += ftbitmap.c
BASE_EXTENSIONS += ftglyph.c
BASE_EXTENSIONS += ftstroke.c
最后生成动态库strip后是240K
三、使用
编译出来的include和lib目录下文件直接使用。但是include下的ft2build.h位置有点奇怪,看起内容:
#include
但是生成的include目录是include/freetype2/freetype/,并且ft2build.h在include下,跟freetype2同级,所以我把他放到了freetype2下,跟freetype同级
阅读(3840) | 评论(0) | 转发(1) |