【问题标题】:Do the Android NDK toolchain binaries build with or without exceptions by default?默认情况下,Android NDK 工具链二进制文件是否在有或没有异常的情况下构建?
【发布时间】:2012-03-18 19:56:22
【问题描述】:

阅读 Android NDK 文档后,我对这个问题有点困惑。 CPLUSPLUS-SUPPORT.html 声明:

II.1. C++ 异常支持:


NDK 工具链支持 C++ 异常,自 NDK r5 起,但所有 C++ 默认情况下,源编译时使用 -fno-exceptions 支持,例如 与以前版本的兼容性原因。

但是,STANDALONE-TOOLCHAIN.html 说:

5.3 例外,RTTI 和 STL:


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

这两种说法似乎完全相互矛盾。还是我误解了什么?那么默认情况下是启用还是禁用异常?还是可能取决于其他因素?

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

【问题讨论】:

    标签: android android-ndk


    【解决方案1】:

    如果您使用提供的ndk-build 系统来构建您的应用程序(您可能就是这样),那么默认情况下会禁用异常

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多