加载OpenAL Soft时缺少符号“ aligned_alloc”

时间:2018-06-25 09:13:06

标签: android android-ndk c11 openal-soft

我使用以下命令使用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共享库文件?

1 个答案:

答案 0 :(得分:0)

-DCMAKE_ANDROID_API=23传递给CMake进行了修复,因为它将导致:

-- Looking for aligned_alloc - not found

我想我应该能够在具有Oreo(API级别26)或更高版本的Android手机上加载共享库。