NDK错误....做NDK的构建 [英] NDK error....on doing ndk-build

查看:393
本文介绍了NDK错误....做NDK的构建的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图执行NDK的构建时,我得到以下错误...
任何一个能帮助我吗?

  lmImf / ImfHuf.cpp:133:未定义的参考`__cxa_throw
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`IMF::(匿名命名空间):: invalidTableEntry():
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:141:未定义的引用`__cxa_allocate_exception
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:141:未定义的引用`__cxa_throw
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`IMF::(匿名命名空间):: tooMuchData():
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:93:未定义的引用`__cxa_allocate_exception
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:93:未定义的引用`__cxa_throw
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`IMF::(匿名命名空间)::无效code():
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:109:未定义的引用`__cxa_allocate_exception
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:109:未定义的引用`__cxa_throw
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`invalidTableSize:
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:117:未定义的引用`__cxa_allocate_exception
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:117:未定义的引用`__cxa_throw
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`invalidNBits:
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:85:未定义的引用`__cxa_allocate_exception
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:85:未定义的引用`__cxa_throw
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`〜AutoArray:
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/IlmImf/ImfAutoArray.h:61:未定义的引用`__cxa_end_cleanup
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`IMF :: hufUncom preSS(字符常量*,整型,无符号短*,INT):
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:1076:未定义的引用`__cxa_begin_catch
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:1079:未定义的引用`__cxa_rethrow
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:1076:未定义的引用`__cxa_end_catch
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):(.ARM.extab.text._ZN3Imf13hufUncom$p$pssEPKciPti+0x0):未定义的引用`__gxx_personality_v0
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):在功能`〜AutoArray:
    D:\\Projects.CPP\\Engine5\\svn\\trunk\\Dependencies\\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/IlmImf/ImfAutoArray.h:61:未定义的引用`__cxa_end_cleanup
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):(.ARM.extab.text._ZN3Imf11hufCom$p$pssEPKtiPc+0x0):未定义的参考`__gxx_personality_v0
    /home/flock/ANDROID/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/$p$pbuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a(unwind-arm.o):在功能上`__gnu_unwind_pr_common:
    /i/ndk-andrewhsieh/src.1-with-cherrypicks//build/../gcc/gcc-4.4.3/libgcc/../gcc/config/arm/unwind-arm.c:1237:未定义的引用`__cxa_call_unexpected
    collect2:劳工处返回1退出状态

我application.mk

  APP_OPTIM:=释放
APP_PLATFORM:=机器人-8
APP_STL:= gnustl_static
APP_CPPFLAGS + = -frtti
APP_CPPFLAGS + = -fexceptions
APP_CPPFLAGS + = -DANDROID
APP_ABI:= armeabi-V7A

和我的android.mk

  LOCAL_PATH:= $(叫我-DIR)
    包括$(CLEAR_VARS)
    LOCAL_MODULE:= FreeImage的
    LOCAL_SRC_FILES:= libfreeimage.a
    APP_STL:= gnustl_static
    包括$(preBUILT_STATIC_LIBRARY)    包括$(CLEAR_VARS)
    LOCAL_MODULE:=图像处理
    LOCAL_SRC_FILES:= imageprocessing.c
    LOCAL_STATIC_LIBRARIES = FreeImage的
    LOCAL_EXPORT_C_INCLUDES:= freeimage.h
    LOCAL_LDLIBS:= -lm -llog -ljnigraphics
    APP_STL:= gnustl_static
    包括$(BUILD_SHARED_LIBRARY)


解决方案

添加到您的 Application.mk

  APP_STL:= gnustl_static
APP_CPPFLAGS + = -frtti
APP_CPPFLAGS + = -fexceptions

看来你FreeImage是建立与不同的运行时间比你的应用程序。

I get the following error when trying to perform an NDK-build... Can any one help me?

lmImf/ImfHuf.cpp:133: undefined reference to `__cxa_throw'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `Imf::(anonymous namespace)::invalidTableEntry()':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:141: undefined reference to `__cxa_allocate_exception'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:141: undefined reference to `__cxa_throw'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `Imf::(anonymous namespace)::tooMuchData()':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:93: undefined reference to `__cxa_allocate_exception'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:93: undefined reference to `__cxa_throw'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `Imf::(anonymous namespace)::invalidCode()':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:109: undefined reference to `__cxa_allocate_exception'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:109: undefined reference to `__cxa_throw'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `invalidTableSize':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:117: undefined reference to `__cxa_allocate_exception'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:117: undefined reference to `__cxa_throw'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `invalidNBits':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:85: undefined reference to `__cxa_allocate_exception'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:85: undefined reference to `__cxa_throw'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `~AutoArray':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/IlmImf/ImfAutoArray.h:61: undefined reference to `__cxa_end_cleanup'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `Imf::hufUncompress(char const*, int, unsigned short*, int)':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:1076: undefined reference to `__cxa_begin_catch'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:1079: undefined reference to `__cxa_rethrow'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfHuf.cpp:1076: undefined reference to `__cxa_end_catch'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):(.ARM.extab.text._ZN3Imf13hufUncompressEPKciPti+0x0): undefined reference to `__gxx_personality_v0'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o): In function `~AutoArray':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/IlmImf/ImfAutoArray.h:61: undefined reference to `__cxa_end_cleanup'
    ./obj/local/armeabi-v7a/libfreeimage.a(ImfHuf.o):(.ARM.extab.text._ZN3Imf11hufCompressEPKtiPc+0x0): undefined reference to `__gxx_personality_v0'
    /home/flock/ANDROID/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a(unwind-arm.o): In function `__gnu_unwind_pr_common':
    /i/ndk-andrewhsieh/src.1-with-cherrypicks//build/../gcc/gcc-4.4.3/libgcc/../gcc/config/arm/unwind-arm.c:1237: undefined reference to `__cxa_call_unexpected'
    collect2: ld returned 1 exit status

My application.mk

APP_OPTIM := release
APP_PLATFORM := android-8
APP_STL := gnustl_static
APP_CPPFLAGS += -frtti 
APP_CPPFLAGS += -fexceptions
APP_CPPFLAGS += -DANDROID
APP_ABI := armeabi-v7a

And My android.mk

 LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE:= freeimage
    LOCAL_SRC_FILES :=libfreeimage.a
    APP_STL := gnustl_static
    include $(PREBUILT_STATIC_LIBRARY)

    include $(CLEAR_VARS)
    LOCAL_MODULE:= imageprocessing
    LOCAL_SRC_FILES:= imageprocessing.c
    LOCAL_STATIC_LIBRARIES = freeimage
    LOCAL_EXPORT_C_INCLUDES := freeimage.h
    LOCAL_LDLIBS:= -lm -llog -ljnigraphics
    APP_STL := gnustl_static
    include $(BUILD_SHARED_LIBRARY)

解决方案

Add this to your Application.mk:

APP_STL := gnustl_static
APP_CPPFLAGS += -frtti 
APP_CPPFLAGS += -fexceptions

It seems your FreeImage is build with the different run-time than your application.

这篇关于NDK错误....做NDK的构建的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆