終於把freetype移植到android下了!

總結一下吧: linux

先是本身修改freetype工程,搞出一個ndk庫工程,跟據INSTALL.ANY生成的android.mk文件以下: android

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 shell

總結一下注意事項: ide

主要就是路徑問題,由於生成的Standalone Toolchain的路徑必須在PATH變量中。最好再對CC和CXX兩個變量進行設置,不然可能即便編出庫也不能成功連接。這樣執行各步: idea

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) debug

別忘了在freetype install到的路徑下建立Android.mk文件。 code

相關文章
相關標籤/搜索