Android NDK支持RTTI

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

  1. To use it, define APP_STL to 'gnustl_static' in your Application.mk.  
  2. See docs/CPLUSPLUS-SUPPORT.html for more details.  
  3. 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 了。

阅读(495) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
原文地址:https://www.cnblogs.com/black/p/5171635.html