【问题标题】:I just want to use a C++11 lib in Android 4.4我只想在 Android 4.4 中使用 C++11 库
【发布时间】:2020-07-01 13:01:23
【问题描述】:

我想在我们支持 Android 4.4 的 App 中嵌入 Antlr4.8 C++ 运行时库。

我查了Google官方关于NDK的文档,但还是不知道NDK版本与Android系统版本和C++版本的关系。

那么任何人都可以给我一些关于在 Android 应用程序中嵌入 C++11 库的提示或“更多详细信息”文档吗? 谢谢。

顺便说一句,我是一名 iOS 开发人员,所以这对我来说很难,我仍然努力学习 Android NDK 开发。

【问题讨论】:

  • “在 Android 上,NDK 使用的 libc++ 不是操作系统的一部分。这使 NDK 用户即使在针对旧版本的 Android 时也可以访问最新的 libc++ 功能和错误修复。权衡是,如果您使用 libc++_shared.so,则必须将其包含在您的 APK 中。如果您使用 Gradle 构建应用程序,则会自动处理。"

标签: android c++ c++11 android-ndk antlr


【解决方案1】:

根据当前 Android NDK v21 的release notes,工具链使用 Clang 版本 r365631(截至 2019 年 7 月 10 日的主分支),对应于 Clang 9.0.6。

这意味着 C++ 是 supported 一直到 C++17,甚至是 C++20 的某些部分。

所以C++11完全没问题。


注意:要使用最新的 C++17 功能,您可能必须静态链接到最新的 libc++ (-static-libstdc++),如 here 所述。对于 C++11,这很可能不需要。

【讨论】:

  • 非常感谢。它为我提供了一条清晰的道路,我会尝试的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
  • 2011-03-01
  • 2014-02-19
相关资源
最近更新 更多