2012-02-29 70 views
2

閱讀Android NDK文檔後,我對這個問題有點困惑。 CPLUSPLUS-SUPPORT.html指出:默認情況下,Android NDK工具鏈二進制文件是否構建有或沒有例外情況?

II.1。 C++異常的支持:


NDK的工具鏈支持C++異常,因爲NDK R5,但是所有的C++ 源與-fno-異常編譯默認支持,與以前版本的兼容性 原因。

不過的,獨立的,TOOLCHAIN.html說:

5.3例外,RTTI和STL:


工具鏈的二進制文件默認做支持C++異常和RTTI。 他們是默認啓用的,所以使用-fno-異常和-fno-RTTI,如果你想 與他們建立源時禁用它們(例如,以產生 較小的機器代碼)。

這兩個陳述似乎是完全相互矛盾的。還是我誤解了一些東西?那麼默認情況下啓用或禁用了例外功能嗎或者它也許取決於其他因素?

我的猜測是文件被簡單地從舊版本結轉的一個,那就是這種差異的原因,但我想知道這是正確的。

回答

2

如果您使用提供的ndk-build系統來構建您的應用程序(您可能是),那麼例外情況默認情況下會禁用

STANDALONE-TOOLCHAIN.html僅適用於直接將編譯器與自己的編譯系統配合使用,而不是使用ndk-build。以下是它的說明:

現在可以使用隨Android NDK 提供的工具鏈作爲獨立編譯器。如果您已經擁有自己的構建系統,並且只需要調用 交叉編譯器爲其添加對Android的支持,則此功能非常有用。

+0

謝謝你。這清除了一兩件事! – EasyPush 2012-02-29 10:35:37

相關問題