终于把freetype移植到android下了!

总结一下吧:

先是自己修改freetype工程,搞出一个ndk库工程,跟据INSTALL.ANY生成的android.mk文件如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := ft2_static

LOCAL_MODULE_FILENAME := libft2

# compile in ARM mode, since the glyph loader/renderer is a hotspot
# when loading complex pages in the browser
#LOCAL_ARM_MODE := arm

LOCAL_CFLAGS +=  -D__LINUX_CPL__ -DANDROID_NDK -DUNICODE -DFT2_BUILD_LIBRARY
#LOCAL_CFLAGS += -fPIC -DPIC
#LOCAL_CFLAGS += "-DDARWIN_NO_CARBON"
#LOCAL_CFLAGS += "-DFT2_BUILD_LIBRARY"

LOCAL_SRC_FILES := \
src/base/ftsystem.c \
src/base/ftinit.c \
src/base/ftdebug.c \
src/base/ftbase.c \
src/base/ftbbox.c \
src/base/ftglyph.c \
src/base/ftbdf.c \
src/base/ftbitmap.c \
src/base/ftcid.c \
src/base/ftfstype.c \
src/base/ftgasp.c  \
src/base/ftgxval.c \
src/base/ftlcdfil.c \
src/base/ftmm.c  \
src/base/ftotval.c \
src/base/ftpatent.c \
src/base/ftpfr.c  \
src/base/ftstroke.c   \
src/base/ftsynth.c \
src/base/fttype1.c \
src/base/ftwinfnt.c \
src/base/ftxf86.c \
src/bdf/bdf.c \
src/cid/type1cid.c \
src/cff/cff.c \
src/pcf/pcf.c \
src/pfr/pfr.c \
src/sfnt/sfnt.c \
src/truetype/truetype.c \
src/type1/type1.c \
src/type42/type42.c \
src/winfonts/winfnt.c \
src/raster/raster.c \
src/smooth/smooth.c \
src/autofit/autofit.c \
src/cache/ftcache.c \
src/gzip/ftgzip.c \
src/lzw/ftlzw.c \
src/bzip2/ftbzip2.c \
src/gxvalid/gxvalid.c \
src/otvalid/otvalid.c \
src/psaux/psaux.c \
src/pshinter/pshinter.c \
src/psnames/psnames.c 

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include \
                    $(LOCAL_PATH)/include/freetype


LOCAL_C_INCLUDES := $(LOCAL_PATH)/include

include $(BUILD_STATIC_LIBRARY)
编译成功,编出的静态库也可以使用,但是在调用时发生了很奇怪的问题:FT_New_Memory_Face()总是返回11,这表示有没加载的模块,但无论如何都搞不出来了。

但天无绝人之路。后来又发现了Standalone Toolchain方法。经过一番失败,最终编译成功。教程在此:http://en.wikibooks.org/wiki/OpenGL_Programming/Installation/Android#FreeType

总结一下注意事项:

主要就是路径问题,因为生成的Standalone Toolchain的路径必须在PATH变量中。最好再对CC和CXX两个变量进行设置,否则可能即使编出库也不能成功链接。这样执行各步:

export PATH=xxx/ndk-standalone-14/bin:$PATH
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++

./configure --enable-static --disable-shared --host=arm-linux-androideabi --prefix=/freetype --without-zlib
make -j4
make install DESTDIR=$(pwd)

别忘了在freetype install到的路径下创建Android.mk文件。


转载于:https://my.oschina.net/nkm/blog/111831

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值