Same old issues with SDL_TTF giving undefined reference

First I would like to start with that I’m using the following setup

OS: Windows 7 (x86)
IDE: Eclipse 4.2 (Juno)
NDK: r8e

After getting it to recognize that ftbuild2.h and SDL.h do in fact exist in the places that they are pointing to and go to build it. It builds SDL2 without issue, the freetype library and SDL_ttf to an extent. It however then gives me the following errors.

Code:
14:38:54 **** Build of configuration Default for project OmegaDice ****
“C:\android-ndk-r8e\ndk-build.cmd” all
FIND: Parameter format not correct
Install : libSDL2.so => libs/armeabi/libSDL2.so
"Compile thumb : SDL2_ttf <= SDL_ttf.c
SharedLibrary : libSDL2_ttf.so
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:590: error: undefined reference to 'FT_Get_Char_Index’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:592: error: undefined reference to 'FT_Load_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:656: error: undefined reference to 'FT_Outline_Transform’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:662: error: undefined reference to 'FT_Get_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:663: error: undefined reference to 'FT_Stroker_New’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:667: error: undefined reference to 'FT_Stroker_Set’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:669: error: undefined reference to 'FT_Glyph_Stroke’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:671: error: undefined reference to 'FT_Stroker_Done’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:673: error: undefined reference to 'FT_Glyph_To_Bitmap’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:676: error: undefined reference to 'FT_Done_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:682: error: undefined reference to 'FT_Render_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function Find_Glyph:jni/SDL_ttf/SDL_ttf.c:885: error: undefined reference to 'FT_Done_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_Init:jni/SDL_ttf/SDL_ttf.c:334: error: undefined reference to 'FT_Init_FreeType’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_CloseFont:jni/SDL_ttf/SDL_ttf.c:915: error: undefined reference to 'FT_Done_Face’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:420: error: undefined reference to 'FT_Open_Face’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:442: error: undefined reference to 'FT_Set_Charmap’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:448: error: undefined reference to 'FT_Set_Char_Size’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:457: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:458: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:460: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:462: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:474: error: undefined reference to 'FT_Set_Pixel_Sizes’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_GlyphIsProvided:jni/SDL_ttf/SDL_ttf.c:1103: error: undefined reference to 'FT_Get_Char_Index’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_SizeUTF8:jni/SDL_ttf/SDL_ttf.c:1204: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_RenderUTF8_Solid:jni/SDL_ttf/SDL_ttf.c:1390: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_RenderUTF8_Shaded:jni/SDL_ttf/SDL_ttf.c:1568: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_RenderUTF8_Blended:jni/SDL_ttf/SDL_ttf.c:1732: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function TTF_Quit:jni/SDL_ttf/SDL_ttf.c:2140: error: undefined reference to 'FT_Done_FreeType’
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libSDL2_ttf.so] Error 1

14:38:58 Build Finished (took 3s.443ms)

Android.mk:

Code:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := SDL2_ttf

FREETYPE := $(LOCAL_PATH)/freetype

LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/…/SDL/include $(LOCAL_PATH)/…/freetype/include $(LOCAL_PATH)/include
LOCAL_CFLAGS := -Os

LOCAL_CPP_EXTENSION := .cpp

LOCAL_SRC_FILES := SDL_ttf.c

LOCAL_SHARED_LIBRARIES := SDL2
LOCAL_STATIC_LIBRARIES := freetype
LOCAL_LDLIBS := -lz

include $(BUILD_SHARED_LIBRARY)

And no the original SDL_TTF I downloaded did not function at all and I had to go back to this solution for it to work to this point. I would really like help in getting this to function so I can port my games to Android. Why does this have to be so difficult?

Did you look at SDL_ttf’s Android.mk? It looks for the freetype directory
as a subdirectory (of SDL_ttf). Maybe that would help.

Jonny DOn Sun, Apr 7, 2013 at 10:44 PM, Coder Bear wrote:

**
First I would like to start with that I’m using the following setup

OS: Windows 7 (x86)
IDE: Eclipse 4.2 (Juno)
NDK: r8e

After getting it to recognize that ftbuild2.h and SDL.h do in fact exist
in the places that they are pointing to and go to build it. It builds SDL2
without issue, the freetype library and SDL_ttf to an extent. It however
then gives me the following errors.

Code:

14:38:54 **** Build of configuration Default for project OmegaDice ****
“C:\android-ndk-r8e\ndk-build.cmd” all
FIND: Parameter format not correct
Install : libSDL2.so => libs/armeabi/libSDL2.so
"Compile thumb : SDL2_ttf <= SDL_ttf.c
SharedLibrary : libSDL2_ttf.so
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:590: error: undefined reference to
’FT_Get_Char_Index’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:592: error: undefined reference to
’FT_Load_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:656: error: undefined reference to
’FT_Outline_Transform’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:662: error: undefined reference to
’FT_Get_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:663: error: undefined reference to
’FT_Stroker_New’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:667: error: undefined reference to
’FT_Stroker_Set’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:669: error: undefined reference to
’FT_Glyph_Stroke’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:671: error: undefined reference to
’FT_Stroker_Done’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:673: error: undefined reference to
’FT_Glyph_To_Bitmap’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:676: error: undefined reference to
’FT_Done_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:682: error: undefined reference to
’FT_Render_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
Find_Glyph:jni/SDL_ttf/SDL_ttf.c:885: error: undefined reference to
’FT_Done_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_Init:jni/SDL_ttf/SDL_ttf.c:334: error: undefined reference to
’FT_Init_FreeType’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_CloseFont:jni/SDL_ttf/SDL_ttf.c:915: error: undefined reference to
’FT_Done_Face’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:420: error: undefined reference
to 'FT_Open_Face’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:442: error: undefined reference
to 'FT_Set_Charmap’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:448: error: undefined reference
to 'FT_Set_Char_Size’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:457: error: undefined reference
to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:458: error: undefined reference
to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:460: error: undefined reference
to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:462: error: undefined reference
to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_OpenFontIndexRW:jni/SDL_ttf/SDL_ttf.c:474: error: undefined reference
to 'FT_Set_Pixel_Sizes’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_GlyphIsProvided:jni/SDL_ttf/SDL_ttf.c:1103: error: undefined reference
to 'FT_Get_Char_Index’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_SizeUTF8:jni/SDL_ttf/SDL_ttf.c:1204: error: undefined reference to
’FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_RenderUTF8_Solid:jni/SDL_ttf/SDL_ttf.c:1390: error: undefined reference
to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_RenderUTF8_Shaded:jni/SDL_ttf/SDL_ttf.c:1568: error: undefined
reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_RenderUTF8_Blended:jni/SDL_ttf/SDL_ttf.c:1732: error: undefined
reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe:
./obj/local/armeabi/objs/SDL2_ttf/SDL_ttf.o: in function
TTF_Quit:jni/SDL_ttf/SDL_ttf.c:2140: error: undefined reference to
’FT_Done_FreeType’
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libSDL2_ttf.so] Error 1

14:38:58 Build Finished (took 3s.443ms)

Android.mk:

Code:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := SDL2_ttf

FREETYPE := $(LOCAL_PATH)/freetype

LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/…/SDL/include
$(LOCAL_PATH)/…/freetype/include $(LOCAL_PATH)/include
LOCAL_CFLAGS := -Os

LOCAL_CPP_EXTENSION := .cpp

LOCAL_SRC_FILES := SDL_ttf.c

LOCAL_SHARED_LIBRARIES := SDL2
LOCAL_STATIC_LIBRARIES := freetype
LOCAL_LDLIBS := -lz

include $(BUILD_SHARED_LIBRARY)

And no the original SDL_TTF I downloaded did not function at all and I had
to go back to this solution for it to work to this point. I would really
like help in getting this to function so I can port my games to Android.
Why does this have to be so difficult?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Still not build for me. Please note that SDL2, SDL_Image, and the freetype library all built without an issue.

This is the Android.mk file for SDL_TTF:

Code:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := sdl_ttf

LOCAL_C_INCLUDES := $(LOCAL_PATH)/…/SDL/include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/…/freetype/include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/…/freetype/include/freetype
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
LOCAL_CFLAGS := -Os

LOCAL_SRC_FILES := SDL_ttf.c

LOCAL_SHARED_LIBRARIES := SDL2
LOCAL_STATIC_LIBRARIES := freetype
LOCAL_LDLIBS := -lz

include $(BUILD_SHARED_LIBRARY)

This is the current Build Log

Code:
16:35:02 **** Incremental Build of configuration Default for project OmegaDice ****
“C:\android-ndk-r8e\ndk-build.cmd” V=1 clean all
FIND: Parameter format not correct
Clean: SDL2 [armeabi]
Clean: freetype [armeabi]
Clean: jpeg [armeabi]
Clean: png [armeabi]
Clean: sdl_image [armeabi]
Clean: sdl_ttf [armeabi]
Clean: stlport_shared [armeabi]
Clean: stlport_static [armeabi]
del /f/q jni…\libs\armeabi\libsdl_image.so jni…\libs\armeabi\libSDL2.so >NUL 2>NUL
Install : libSDL2.so => jni/…/libs/armeabi/libSDL2.so
copy /b/y “.\obj\local\armeabi\libSDL2.so” “jni…\libs\armeabi\libSDL2.so” > NUL
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-strip --strip-unneeded jni/…/libs/armeabi/libSDL2.so
Install : libsdl_image.so => jni/…/libs/armeabi/libsdl_image.so
copy /b/y “.\obj\local\armeabi\libsdl_image.so” “jni…\libs\armeabi\libsdl_image.so” > NUL
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-strip --strip-unneeded jni/…/libs/armeabi/libsdl_image.so
"Compile thumb : sdl_ttf <= SDL_ttf.c
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-gcc -MMD -MP -MF ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o.d -fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -g -DNDEBUG -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Ijni/…/jni/SDL_ttf/…/SDL/include -Ijni/…/jni/SDL_ttf/…/freetype/include -Ijni/…/jni/SDL_ttf/…/freetype/include/freetype -Ijni/…/jni/SDL_ttf/include -IC:/android-ndk-r8e/sources/cxx-stl/stlport/stlport -IC:/android-ndk-r8e/sources/cxx-stl//gabi++/include -Ijni/…/jni/SDL_ttf -DANDROID -Os -Wa,–noexecstack -IC:/android-ndk-r8e/platforms/android-14/arch-arm/usr/include -c jni/…/jni/SDL_ttf/SDL_ttf.c -o ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o
SharedLibrary : libsdl_ttf.so
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-g++ -Wl,-soname,libsdl_ttf.so -shared --sysroot=C:/android-ndk-r8e/platforms/android-14/arch-arm ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o ./obj/local/armeabi/libfreetype.a -lgcc ./obj/local/armeabi/libSDL2.so -no-canonical-prefixes -Wl,–no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -LC:/android-ndk-r8e/platforms/android-14/arch-arm/usr/lib -lz -lc -lm -o ./obj/local/armeabi/libsdl_ttf.so
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:591: error: undefined reference to 'FT_Get_Char_Index’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:593: error: undefined reference to 'FT_Load_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:655: error: undefined reference to 'FT_Outline_Transform’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:661: error: undefined reference to 'FT_Get_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:662: error: undefined reference to 'FT_Stroker_New’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:666: error: undefined reference to 'FT_Stroker_Set’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:667: error: undefined reference to 'FT_Glyph_Stroke’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:668: error: undefined reference to 'FT_Stroker_Done’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:670: error: undefined reference to 'FT_Glyph_To_Bitmap’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:672: error: undefined reference to 'FT_Done_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:678: error: undefined reference to 'FT_Render_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function Find_Glyph:jni/…/jni/SDL_ttf/SDL_ttf.c:879: error: undefined reference to 'FT_Done_Glyph’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_Init:jni/…/jni/SDL_ttf/SDL_ttf.c:343: error: undefined reference to 'FT_Init_FreeType’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_CloseFont:jni/…/jni/SDL_ttf/SDL_ttf.c:911: error: undefined reference to 'FT_Done_Face’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:422: error: undefined reference to 'FT_Open_Face’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:444: error: undefined reference to 'FT_Set_Charmap’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:451: error: undefined reference to 'FT_Set_Char_Size’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:460: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:461: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:463: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:464: error: undefined reference to 'FT_MulFix’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_OpenFontIndexRW:jni/…/jni/SDL_ttf/SDL_ttf.c:475: error: undefined reference to 'FT_Set_Pixel_Sizes’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_GlyphIsProvided:jni/…/jni/SDL_ttf/SDL_ttf.c:1016: error: undefined reference to 'FT_Get_Char_Index’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_SizeUNICODE:jni/…/jni/SDL_ttf/SDL_ttf.c:1166: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_RenderUNICODE_Solid:jni/…/jni/SDL_ttf/SDL_ttf.c:1387: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_RenderUNICODE_Shaded:jni/…/jni/SDL_ttf/SDL_ttf.c:1658: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_RenderUNICODE_Blended:jni/…/jni/SDL_ttf/SDL_ttf.c:1917: error: undefined reference to 'FT_Get_Kerning’
C:/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/sdl_ttf/SDL_ttf.o: in function TTF_Quit:jni/…/jni/SDL_ttf/SDL_ttf.c:2092: error: undefined reference to 'FT_Done_FreeType’
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libsdl_ttf.so] Error 1

16:35:06 Build Finished (took 4s.179ms)