Мне нужно добавить в Android проект поддержки атома процессора. Сконфигурируйте и соберите библиотеку libvpx под x86 с параметрами:
./ configure —disable-examples —sdk-path = ‘/ Android / ndk’ —enable-vp8 —target = x86-android-gcc —disable-postproc
делать
построить успех, и я получаю статическую библиотеку libvpx.a
Добавить библиотеку в проект:
включает $ (CLEAR_VARS)
LOCAL_MODULE: = vpx
LOCAL_SRC_FILES: = третье лицо / webm / libvpx / $ (TARGET_ARCH_ABI) / libvpx.a
включает $ (PREBUILT_STATIC_LIBRARY)
LOCAL_STATIC_LIBRARIES: = stdc ++ jpeg png vorbis vorbisfile vorbisenc theora theoradec libwebp vpx
но при сборке проекта возникали ошибки:
jni / thirdparty / webm / libvpx / x86 / libvpx.a (vp8_dx_iface.co) (. text +0 x568): ошибка: неопределенная ссылка на __vsnprintf_chk
jni / thirdparty / webm / libvpx / x86 / libvpx.a (vp8_dx_iface.co) (. text +0 x596): ошибка: неопределенная ссылка на __longjmp_chk
jni / thirdparty / webm / libvpx / x86 / libvpx.a (onyxd_if.co) (. text +0 x158): ошибка: неопределенная ссылка на ‘__vsnprintf_chk’
jni / thirdparty / webm / libvpx / x86 / libvpx.a (onyxd_if.co) (. text +0 x186): ошибка: неопределенная ссылка на __longjmp_chk
jni / thirdparty / webm / libvpx / x86 / libvpx.a (onyxd_if.co) (. text.unlikely +0 x23): ошибка: неопределенная ссылка на «__assert_fail»
jni / thirdparty / webm / libvpx / x86 / libvpx.a (yv12extend.co): функция vp8_yv12_extend_frame_borders_c: ошибка: неопределенная ссылка на «__assert_fail»
jni / thirdparty / webm / libvpx / x86 / libvpx.a (yv12extend.co): функция vp8_yv12_extend_frame_borders_c: ошибка: неопределенная ссылка на «__assert_fail»
jni / thirdparty / webm / libvpx / x86 / libvpx.a (yv12extend.co): функция vp8_yv12_extend_frame_borders_c: ошибка: неопределенная ссылка на «__assert_fail»
jni / thirdparty / webm / libvpx / x86 / libvpx.a (decodframe.co) (. text +0 x198): ошибка: неопределенная ссылка на ‘__vsnprintf_chk’
jni / thirdparty / webm / libvpx / x86 / libvpx.a (decodframe.co) (. text +0 x1c6): ошибка: неопределенная ссылка на ‘__longjmp_chk’
jni / thirdparty / webm / libvpx / x86 / libvpx.a (boolhuff.co) (. text +0 x55): ошибка: неопределенная ссылка на ‘__longjmp_chk’
jni / thirdparty / webm / libvpx / x86 / libvpx.a (onyx_if.co) (. text +0 xa08): ошибка: неопределенная ссылка на ‘__vsnprintf_chk’
Кто-нибудь знает как это исправить? Построить проект под armeabi успешно.
Попытка добавить флаги APP_CPPFLAGS + = — std = gnu ++ 11 и изменить версию ndk
NDK_TOOLCHAIN_VERSION: = 4,8
другие флаги проекта:
APP_STL: = gnustl_static
APP_CPPFLAGS + = -frtti-fexceptions
APP_CFLAGS + = -Wno-error = формат-безопасность
APP_ABI: = armeabi x86
используется в конструкции ndk android-ndk-r9d-linux-x86 (я пытался использовать android-ndk-r9d-linux-x86_64 — тот же результат), Ubuntu 13.10 x86_64, Eclipse 3.8.1
Для меня добавление --extra-cflags="-U_FORTIFY_SOURCE"
покрытый __longjmk_chk
а также __vsnprintf_chk
А я написал пустой __assert_fail
функция: extern "C" { void __assert_fail() {} }