默认情况下,Android NDK工具链二进制文件是否构建有或没有异常?

时间:2012-02-29 10:21:00

标签: android android-ndk

阅读Android NDK文档后,我对此问题感到有些困惑。 CPLUSPLUS-SUPPORT.html声明:

  

II.1。 C ++ Exceptions支持:

     
     

NDK工具链支持C ++异常,因为NDK r5,但是所有的C ++   默认情况下,使用-fno-exceptions支持编译源代码   与先前版本的兼容性原因。

然而,STANDALONE-TOOLCHAIN.html说:

  

5.3例外,RTTI和STL:

     
     

工具链二进制文件 默认支持C ++异常和RTTI。   它们默认启用,因此如果您使用-fno-exceptions和-fno-rtti   想要在使用它们构建源代码时禁用它们(例如生成   较小的机器代码)。

这两个陈述似乎完全相互矛盾。或者我误解了什么?那么默认情况下是启用还是禁用例外?或者它可能取决于其他因素?

我的猜测是其中一个文件只是从旧版本中转移而来,这就是出现差异的原因,但我想知道哪个是正确的。

1 个答案:

答案 0 :(得分:2)

如果您使用提供的ndk-build系统来构建应用程序(可能是您的应用程序),则默认情况下会禁用例外

STANDALONE-TOOLCHAIN.html仅适用于您直接在自己的构建系统中使用编译器,而不是使用ndk-build。这就是它所说的:

  

现在可以使用随Android NDK提供的工具链   作为独立的编译器。如果您已经拥有,这可能很有用   自己的构建系统,只需要能够调用   交叉编译器为它添加对Android的支持。