在检查“android-ndk-linux_x86 / sources / cxx-stl / gnu-libstdc ++ / include / memory”头文件时,我发现此头文件包含其他STL头文件
__GXX_EXPERIMENTAL_CXX0X__
标记。我认为这个标志与“C ++ 0X”标准有关,这个标准可能在Android-ndk r7中是实验性的。但是,我想在我的项目中打开这个C ++标准。 (我不确定这个“C ++ 0X”标准是否默认开启)
我想知道在编译Android项目的“project / jni”目录中的.cpp文件时,如何告诉Android-ndk设置此标志。或者我怎么能在我的应用程序中打开实验性的“C ++ 0X”标准。
我是否需要使用指定标志,例如LOCAL_CPPFLAGS和/或APP_CPPFLAGS,位于“Android.mk”/“Application.mk”文件中。 (我在“Application.mk”中使用“APP_STL:= gnustl_static”)
感谢您的任何建议。
Lawrence Tsang
答案 0 :(得分:7)
C ++ 03不是实验标准;这是默认值。
然而,C ++ 0X是一个实验标准。它的官方名称现已设置为C ++ 11,但在GCC(以及其他任何地方)的实现都不完整。您可以通过将--std=c++0x
传递给GCC来启用它。在抱怨某些内容被破坏之前,请务必检查feature status page。