Android上启用c++ 11支持
Enable C++11 support on Android
如何将c++ 11集成到Android中?
这里的主要答案似乎包括对c++ 11的实验性支持,而c++ 11已不再是实验性的。
如果你使用命令行NDK支持(我使用IDEA社区版13 Java的东西),那么这是我必须放在我的jni/Application.mk
以获得API 19的c++ 11支持(在OSX ML):
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
源自这里和这里
首先,您需要确保您的工具链是"Cross GCC"。虽然这是我的Linux上的默认设置,但在我的MacOSX Lion上不是。
为了做到这一点,转到项目属性> C/c++构建>工具链编辑器。"当前工具链"应该设置为"Cross GCC"。您可能需要取消选中"仅显示兼容的工具链"。 然后,在Android.mk: 的LOCAL_CFLAGS中添加一个选项。LOCAL_CFLAGS := -std=gnu++11
我们现在需要通知Eclipse在哪里可以找到相应的新符号(例如:"std:: unordered_map")。转到右键单击"jni">属性> C/c++通用->路径和符号->符号-> GNU c++ ,并添加以下符号(通过单击"添加…"):
Name: __GXX_EXPERIMENTAL_CXX0X__
Value:
(即。
您也可以在构建中设置它。gradle文件,如果你使用gradle-experimental-plugin:
android.ndk {
moduleName = "hello-android-jni"
stl = "stlport_shared"
cppFlags.add("-std=c++11")
}
使用最新的gradle-experimental-plugin 0.8.0-alpha4添加到你的app/build.gradle:
model {
android {
ndk {
moduleName "native"
CFlags.add("-std=c11") // Enable C11 support
ldLibs.add("log")
}
}
}
相关文章:
- MSVC是否支持C++11样式的属性而不是__declspec
- 如何检测VS C++编译器是否支持C++11?
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- C++11 NVCC 不支持函数 iota()?
- 编译具有Contrib和C++11支持的OpenCV?
- OpenCV 4.x+ 需要启用 C++11 支持编译暗网致命错误
- 为什么 GCC 6.3 在没有显式 C++11 支持的情况下编译此大括号初始化列表代码
- 如何在 Eclipse 中启用 C++11 支持
- 在Apple llvm 4.1上使用libc++与libstc++时,c++11支持的确切区别是什么
- 升级到G 4.7(带有C 11支持):任何ABI不兼容
- 如何使用 CMake 检测编译器的 C++11 支持
- clang 的 c++11 支持可靠吗?
- Clang 3.1 和 C++11 支持状态
- 在每个Qt Creator项目中添加C++11支持
- 未在具有c++11支持的scopet中声明nullptr
- 通过cmake在VS 2013中启用c++ 11支持
- Android上启用c++ 11支持
- 将 C++11 支持添加到 Makefile
- 'for each'不是 std 的成员。 已启用 C++11 支持
- 在xcode 4.5.2中编译带有c++ 11支持的混合objective-C/ c++项目时出现链接错误