Компиляция SDL2 для Android

Я пытаюсь скомпилировать SDL2 для Android на Ubuntu.

Я настраиваю SDL2 с ./configure –host = arm-linux-androideabi

После компиляции с использованием ndk-build я получаю серию неопределенных ссылок:

Compile thumb : SDL2-2.0.0 <= SDL_androidkeyboard.c Compile thumb : SDL2-2.0.0 <= SDL_androidtouch.c Compile thumb : SDL2-2.0.0 <= SDL_androidvideo.c Compile thumb : SDL2-2.0.0 <= SDL_androidwindow.c SharedLibrary : libSDL2-2.0.0.so /home/ire018/Applications/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/ire018/workspace/SDLActivity/obj/local/armeabi/objs/SDL2-2.0.0/src/audio/SDL_audio.o: in function bootstrap:SDL_audio.c(.data.rel.ro+0x0): error: undefined reference to 'PULSEAUDIO_bootstrap' /home/ire018/Applications/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/ire018/workspace/SDLActivity/obj/local/armeabi/objs/SDL2-2.0.0/src/audio/SDL_audio.o: in function bootstrap:SDL_audio.c(.data.rel.ro+0x4): error: undefined reference to 'DISKAUD_bootstrap' /home/ire018/Applications/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/ire018/workspace/SDLActivity/obj/local/armeabi/objs/SDL2-2.0.0/src/core/android/SDL_android.o: in function Java_org_libsdl_app_SDLActivity_onNativeResize:/home/ire018/workspace/SDLActivity/jni/SDL2-2.0.0/src/core/android/SDL_android.c:148: error: undefined reference to 'Android_SetScreenResolution' /home/ire018/Applications/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/ire018/workspace/SDLActivity/obj/local/armeabi/objs/SDL2-2.0.0/src/core/android/SDL_android.o: in function Java_org_libsdl_app_SDLActivity_onNativeKeyDown:/home/ire018/workspace/SDLActivity/jni/SDL2-2.0.0/src/core/android/SDL_android.c:155: error: undefined reference to 'Android_OnKeyDown' /home/ire018/Applications/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/ire018/workspace/SDLActivity/obj/local/armeabi/objs/SDL2-2.0.0/src/core/android/SDL_android.o: in function Java_org_libsdl_app_SDLActivity_onNativeKeyUp:/home/ire018/workspace/SDLActivity/jni/SDL2-2.0.0/src/core/android/SDL_android.c:162: error: undefined reference to 'Android_OnKeyUp' 

Какие-либо предложения?

    Вам не нужно использовать «configure», если вы используете систему ndk-build.

    Хотя технически возможно, кросс-компиляция SDL2 для Android с использованием «configure; make» (то есть путь автоинструментов), вероятно, прослушивается. Что люди делают, просто используют предоставленные файлы Android.mk и строят напрямую, используя ndk-build (см. Инструкции, приведенные в файле Readme-android.txt под заголовком «Построение приложения»)

    Из недавно несжатого архива SDL я предлагаю просто использовать команду ndk-build для создания SDL для Android. Вот команда, которую я использую :

     ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk \ APP_PLATFORM=android-18 

    Вам необходимо будет настроить значение APP_PLATFORM для вашей конфигурации и убедиться, что вы используете Android API, который предоставляет GLES 2.