Comments 10
А можно было просто взять java версию opus-а :)
Как-то новичково. Ни оптимизаций, ни мороки с pic/pie, ни граблей с разными требованиями динамического компоновщика в разных версия андроид.
-DCMAKE_C_FLAGS="-fPIE -fPIC"
то да, приходилось использовать, но там всё довольно понятно было. Если я правильно помню, то при линковке библиотеки в Android проект, линковщик (могу ошибаться кто именно) выдавал ошибку чтобы пересобрать бинарник с этими ключами, что нагуглилось довольно быстро.
Про костыли, возможно мне просто повезло. Интегрировал несколько библиотек, сложностей не было, правда и минимальная Android версия в проектах была довольно высокой, по-моему от Android 9+ из-за специфики проекта.
Если у вас был интересный опыт в этом, поделитесь, думаю многим будет интересно почитать :) Спасибо!)
Безусловно, содержимое статьи полезно в качестве иллюстрации как все слелать с нуля, но в реальных проектах я бы рекомендовал использовать vcpkg, это если не отраслевой стандарт, то уж точно очень популярная штука для сборки c/cpp библиотек под практически все актуальные платформы и их варианты.
Т.е. Ваша сборка свелась бы к чему-то типа: ./vcpkg install opus:arm-android opus:x64-android и тд. Попробуйте обязательно.
Кстати, toolchain файл можно смело инклюдить в CMakeList.txt, если до project. А другие переменные, чтобы не заморачиваться со скриптами и -D -- можно записать во вспомогательный скрипт .cmake в папку cmake -- и тоже заинклюдить в головной CMakeList.
до Prefab не добрались?
Собираем статическую библиотеку через CMake под Android