總結一下吧: 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