【问题标题】:How to turn on the "C++0X" experimental standard when compiling .cpp files in Android-ndk (r7)?Android-ndk(r7)编译.cpp文件时如何开启“C++0X”实验标准?
【发布时间】:2012-01-16 04:44:17
【问题描述】:

在查看“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”)

感谢您的任何建议。

曾志伟

【问题讨论】:

  • C++03 标准存在于 2003 年,可能你的意思是 c++11 标准。
  • @Als 根据 bdonlan,我的意思是“C++0X”标准。我已更改我的问题以反映这一点。

标签: c++ android-ndk


【解决方案1】:

C++03 不是实验标准;这是默认设置。

然而,C++0X 是一个实验标准。它的正式名称现在已设置为 C++11,但在 GCC(以及其他任何地方)中的实现是不完整的。您可以通过将 --std=c++0x 传递给 GCC 来启用它。在抱怨有问题之前记得检查feature status page

【讨论】:

  • '您可以通过将 --std=c++0x 传递给 GCC 来启用它' 但是我如何才能通过 '--std=c++0x ' 到 Android-ndk 环境中的编译器。我正在使用“ndk-build”,并希望通过“Android.mk”/“Application.mk”文件指定编译选项。
  • 将“LOCAL_CPPFLAGS = -std=c++0x”添加到“Android.mk”有效。谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-11-09
  • 2011-09-16
  • 2012-02-10
  • 1970-01-01
  • 2015-06-03
  • 2016-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多