sco*_*awg 68
看来这里的主要答案包括对C++ 11的实验支持,而C++ 11不再是实验性的.
如果你正在使用命令行NDK支持(我使用IDEA社区版13来获取Java的东西),那么这就是我必须jni/Application.mk使用API 19(在OSX ML上)获得C++ 11支持的内容:
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
Run Code Online (Sandbox Code Playgroud)
Jon*_*rin 36
首先,您需要确保您的工具链是"Cross GCC".虽然它是我Linux上的默认设置,但它不在我的MacOSX Lion上.
要执行此操作,请转到" 项目属性">"C/C++生成">"工具链编辑器"." 当前工具链 "应设置为" 交叉GCC ".您可能需要取消选中" 仅显示兼容的工具链 " 框.
然后,在Android.mk中为LOCAL_CFLAGS添加一个选项:
LOCAL_CFLAGS := -std=gnu++11
Run Code Online (Sandbox Code Playgroud)
我们现在需要告知Eclipse在哪里可以找到相应的新符号(例如"std :: unordered_map").转到右键单击"jni">属性> C/C++常规 - >路径和符号 - >符号 - > GNU C++,并添加以下符号(通过单击"添加..."):
Name: __GXX_EXPERIMENTAL_CXX0X__
Value:
Run Code Online (Sandbox Code Playgroud)
(即让"价值"空)
如果您使用的是gradle-experimental-plugin,也可以在build.gradle文件中设置:
android.ndk {
moduleName = "hello-android-jni"
stl = "stlport_shared"
cppFlags.add("-std=c++11")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39978 次 |
| 最近记录: |