在Android NDK中使用STD和异常

Spo*_*ook 1 c++ android stl android-ndk c++11

我在互联网上发现了一些材料,说明使用STL库启用了NDK r5,但在这种情况下,没有使用异常.我最近检查过,当前版本的NDK是r9b,但是没有找到信息,现在是否可以使用STL的异常.现在可以吗?而且,NDK是否支持C++ 11?

ken*_*ytm 7

  • 是的,NDK支持大多数C++ 11,只要你使用的是gcc-4.7 +或clang.

  • 如果你使用的是例外,因为NDK R5支持gabi++,stlportgnustl标准库.您需要在Android.mk中明确启用它:

    LOCAL_CPP_FEATURES += exceptions
    
    Run Code Online (Sandbox Code Playgroud)

您可以从docs/CPLUSPLUS-SUPPORT.htmlNDK安装中获得更多信息.

  • 你在ndk标签里面的@CLIFFORDPY将`-fexceptions`添加到cppFlags中:`ndk {moduleName ='native'tootchain ='clang'stl ='gnustl_static'cppFlags.addAll([' - std = c ++ 11', '-Wall',' - fexceptions',' - frtti'])ldLibs.addAll(['android','z','log'])abiFilters.addAll(["armeabi-v7a","armeabi"]) }` (2认同)