android+引用非+android+工程,[非原创]编译android C++工程找不到exception handle的解决办法...
C++工程有時候會進行異常處理,
所以在編譯的過程中,可能會遇到這種提示:
exception handling disabled,?use
-fexceptions to enable
這是編譯選項沒有支持錯誤處理導(dǎo)致的。
這種情況下要做兩處修改:
1) Android.mk里面增加:
LOCAL_CPPFLAGS += -fexceptions -lstdc++
2) Application.mk里面:
APP_STL :=gnustl_static
而不是stlport_static
對于原因,網(wǎng)上有大神提供了很好的解釋:
參見:
http://stackoverflow.com/questions/9226513/linker-errors-in-android-ndk-undefined-reference-to-cxa-end-cleanup
After reading
android-ndk/docs/CPLUSPLUS-SUPPORT.html I found that there a couple
more libraries that I can link to:
C++ ?C++ ?Standard
Exceptions
RTTI ?Library
system ?no ?no ?no
gabi++ ?no ?yes ?no
stlport ?no ?yes ?yes
gnustl ?yes ?yes ?yes
I'm not sure if using the gnustl library is
going to help, but it certainly does stop the linker errors and
moves the build problems onto a different set of
errors.
可見gnustl
支持的特性是最多的,所以以后再寫application.mk的時候 盡量用 gnustl
總結(jié)
以上是生活随笔為你收集整理的android+引用非+android+工程,[非原创]编译android C++工程找不到exception handle的解决办法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支持1050ti显卡的linux系统,N
- 下一篇: php 错误 异常,php中的异常和错误