【问题标题】:Build project with libvpx x86 android fail with undefined reference error使用 libvpx x86 android 构建项目失败并出现未定义的引用错误
【发布时间】:2014-06-08 01:53:52
【问题描述】:

我需要添加到 android 项目 atom 处理器支持。使用参数配置和构建 x86 下的 libvpx 库:

./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): error: undefined reference to '__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): error: undefined reference to '__longjmp_chk'
jni/thirdparty/webm/libvpx/x86/libvpx.a (onyxd_if.co) (.text.unlikely +0 x23): error: undefined reference to '__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): error: undefined reference to '__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

【问题讨论】:

    标签: android c++ c android-x86


    【解决方案1】:

    为我添加 --extra-cflags="-U_FORTIFY_SOURCE" 覆盖 __longjmk_chk__vsnprintf_chk

    我写了空的__assert_fail函数:extern "C" { void __assert_fail() {} }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 2022-11-23
      • 2020-05-09
      • 1970-01-01
      相关资源
      最近更新 更多