Символ "align_alloc" отсутствует при загрузке OpenAL Soft
Я скомпилировал OpenAL Soft с NDK r17.1.4828580, используя следующую команду:
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 ..
В CMakeLists.txt OpenAL Soft есть проверка на align_alloc, которая, кажется, новая функция в C11. Проверка и сборка завершаются успешно, но когда я пытаюсь загрузить полученный libopenal.so с помощью dlopen, я получаю следующее сообщение об ошибке:
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 ответ
Переходя -DCMAKE_ANDROID_API=23
чтобы CMake это исправил, так как это приведет к:
-- Looking for aligned_alloc - not found
Думаю, я бы смог загрузить общую библиотеку на телефон Android с Oreo (API уровень 26) или новее.