NDK r5 支持 RTTI 了

在 NDK r5 的 sources/cxx-stl/gnu-libstdc++/README 文件里,写着:

To use it, define APP_STL to 'gnustl_static' in your Application.mk. See docs/CPLUSPLUS-SUPPORT.html for more details. This implementation fully supports C++ exceptions and RTTI.

也就是说,如果我们在 Application.mk 文件里面加上:

APP_STL := gnustl_static

 

就可以用 GNU libstdc++ 了,这个版本是支持 C++ exception 和 RTTI 的。(我顺便试了一下 NDK r5 里的 stlport,不支持 RTTI,使用 typeid 会报错)

 

注:Android Build System 总是会带上 -fno-rtti 的编译选项,但是如果你指定了 APP_STL 为 gnustl_static 的话,它会自动在后面再给你加一个 -frtti,这样 g++ 会以最后一个 flag 为准,所以就启用 RTTI 了。

你可能感兴趣的:(c,exception)