如何将 C + + 11集成到 Android 中?
首先,您需要确保您的工具链是“ CrossGCC”。虽然它是我的 Linux 的默认设置,但它不在我的 MacOSX Lion 上。
为了做到这一点,转到 Project Properties > C/C + + Build > Tool Chain Editor 项目属性 > C/C + + Build > 工具链编辑器。“ 当前的工具链”应设定为“ 跨海湾合作委员会”。您可能需要取消选中“ 仅显示兼容的工具链”框。
然后,在 机器人中向 LOCAL _ CFLAGS 添加一个选项:
LOCAL_CFLAGS := -std=gnu++11
现在我们需要告诉 Eclipse 在哪里可以找到相应的新符号(例如“ std: : unorder _ map”)。转到 右击“ jni”> 属性 > C/C + + General-> Path and Symbols-> Symbols-> GNU C + + ,并添加以下符号(通过单击“添加...”) :
Name: __GXX_EXPERIMENTAL_CXX0X__ Value:
(即让“ Value”为空)
这里的主要答案似乎包括对 C + + 11的实验性支持,而 C + + 11已经不再是实验性的了。
如果你使用命令行 NDK 支持(我使用的是 IDEA 社区版本13的 Java 内容) ,那么这就是我在我的 jni/Application.mk中使用 API 19(在 OSX ML 上)获得 C + + 11支持的内容:
jni/Application.mk
NDK_TOOLCHAIN_VERSION := 4.8 # APP_STL := stlport_shared --> does not seem to contain C++11 features APP_STL := gnustl_shared # Enable c++11 extentions in source code APP_CPPFLAGS += -std=c++11
来源于 给你和 给你。
如果您使用的是 Gradle-实验-插件,您也可以在 建造,分级文件中设置:
android.ndk { moduleName = "hello-android-jni" stl = "stlport_shared" cppFlags.add("-std=c++11") }
使用最新的 Gradle-实验-插件0.8.0-alpha4添加到您的 App/build.gradle:
model { android { ndk { moduleName "native" CFlags.add("-std=c11") // Enable C11 support ldLibs.add("log") } } }