NDK错误....做NDK的构建 [英] NDK error....on doing ndk-build
本文介绍了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屋!
查看全文