【发布时间】:2013-02-22 13:13:57
【问题描述】:
我正在使用 android NDK r8d 和 eclipse Juno。我正在尝试在 Eclipse 的原生 android 项目中编译使用 C++11 的 C++ 代码,如 mutex、lock_guard、shared_ptr 等。
我收到如下错误:
“错误:‘shared_ptr’不是‘std’的成员”
“致命错误:互斥锁:没有这样的文件或目录”
我遇到了类似的问题here。它似乎对他们有用,但那里的解释不完整,所以我无法让它为我工作。
我将"NDK_TOOLCHAIN_VERSION=4.7" 添加到Application.mk 和"LOCAL_CFLAGS += -std=c++11" 到Android.mk 文件。仍然无法编译。
在上面的链接中说:
"确保标准库包含路径(如 /android-ndk-r8d/sources/cxx-stl/gnu-libstdc++/4.7/include) 在 目标设置。”
如何以及在何处插入?
我还在 Eclipse IDE 中遇到错误(在源代码上,在编译之前)。我知道我应该定义"__GXX_EXPERIMENTAL_CXX0X__" 来解决它们,但我就是不知道该放在哪里。
所以,如果有人能发布一个完整解释如何编译和使 eclipse 与 C++11 一起工作的答案,那就太好了。
【问题讨论】:
-
阅读 NDK 文档,这是不可能的。
-
你用哪个编译器来编译c++?
-
@naxchange 我正在使用 Android NDK 附带的工具链,我相信它是 gcc/g++。正如我所写,我将其设置为
"NDK_TOOLCHAIN_VERSION=4.7"。有一个关于它的问题here。
标签: c++ gcc c++11 android-ndk smart-pointers