如何构建适用于 Android 的 SDL 库



我计划使用 SDL(Simple DirectMedia Layer)在使用 ffmpeg 库的 Android 应用程序中显示视频输出。我已经从 http://www.libsdl.org/download-1.2.php 下载了源代码,并在我的Ubuntu上构建(./configure,make和make install)。但是当我使用这些.so文件时,Android ndk-build抱怨"无法读取符号。文件格式错误"。

我是否可以在 Android 上使用基于 Ubuntu 构建的 .so 文件,还是需要以不同的方式构建 SDL for Android?

README.android中所写

您需要在 JNI 文件夹中添加一个指向 SDL 文件夹的符号链接,在jni/src/Android.mk之后,请确保您有这些行

SDL_PATH := ../SDL
LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include
# Add your application source files here...
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp 
    main.c
LOCAL_SHARED_LIBRARIES := SDL
LOCAL_LDLIBS := -lGLESv1_CM -llog
include $(BUILD_SHARED_LIBRARY)

这样,SDL 的 .so 将与您的项目一起针对您的目标(当然是 ARM CPU)进行编译,并自动包含在最终.apk

当你做.

/配置&&制作&&做安装时,你实际上是在为你的电脑的CPU构建.so(当然是x86/x86_64)

最新更新