android NDK:编译错误:libstdc ++:`std :: bad_exception ::〜bad_exception()'的多个定义 [英] android NDK:compilation error:libstdc++:multiple definition of `std::bad_exception::~bad_exception()'

查看:57
本文介绍了android NDK:编译错误:libstdc ++:`std :: bad_exception ::〜bad_exception()'的多个定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用android NDK编译c ++代码时,出现以下错误:

While compiling the c++ code using android NDK I am getting the following error:

/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:31: multiple definition of `std::exception::~exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:65: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:31: multiple definition of `std::exception::~exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:65: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~bad_exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:33: multiple definition of `std::bad_exception::~bad_exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:67: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o):(.data.rel.ro._ZTVSt13bad_exception+0x0): multiple definition of `vtable for std::bad_exception'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):(.data.rel.ro+0xf0): first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~bad_exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:33: multiple definition of `std::bad_exception::~bad_exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:67: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `std::exception::what() const':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:46: multiple definition of `std::exception::what() const'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:68: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `std::bad_exception::what() const':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:52: multiple definition of `std::bad_exception::what() const'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:69: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:31: multiple definition of `std::exception::~exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:65: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~bad_exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:33: multiple definition of `std::bad_exception::~bad_exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:67: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o):(.data.rel.ro._ZTVSt9exception+0x0): multiple definition of `vtable for std::exception'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):(.data.rel.ro+0x108): first defined here
collect2: ld returned 1 exit status
make: *** [/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libGenCertificate.so] Error 1

我在application.mk中使用APP_STL:= stlport_static你们可以帮忙吗?

I am using APP_STL := stlport_static in the application.mk Can you guys help?

推荐答案

我终于通过浏览CPLUSPLUS-SUPPORT.html找到了答案.stdc ++和stlport库中有多个异常类函数的定义.因此,我不是通过静态方式添加stlport库,而是通过将Application.mk中的APP_STL更改为以下内容来动态添加它:APP_STL:= stlport_shared

I finally found the answer by going through the CPLUSPLUS-SUPPORT.html. There was a multiple definition of the exception class functions in stdc++ and stlport libraries. So instead of adding stlport library statically, I added it dynamically by changing APP_STL in the Application.mk as: APP_STL := stlport_shared

它解决了问题:)

这篇关于android NDK:编译错误:libstdc ++:`std :: bad_exception ::〜bad_exception()'的多个定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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