我使用以下命令使用NDK r17.1.4828580编译了OpenAL Soft:
cmake -DCMAKE_SYSTEM_NAME=Android -DANDROID_NDK=$$ANDROID_NDK_HOME \
-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DALSOFT_BACKEND_OSS=OFF \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-DALSOFT_BACKEND_WAVE=OFF ..
In OpenAL Soft's CMakeLists.txt中有一个对aligned_alloc的检查,这似乎是C11中的新功能。检查和构建成功,但是当我尝试使用dlopen加载生成的libopenal.so时,出现以下错误消息:
dlopen(libopenal.so): dlopen failed: cannot locate symbol "aligned_alloc" referenced by "/data/app/com.bixense.jngl_test-2/lib/arm/libopenal.so"...
是否需要先加载某种C11 stdlib共享库文件?
答案 0 :(得分:0)
将-DCMAKE_ANDROID_API=23
传递给CMake进行了修复,因为它将导致:
-- Looking for aligned_alloc - not found
我想我应该能够在具有Oreo(API级别26)或更高版本的Android手机上加载共享库。