android - 对于 Android,CMAKE_SYSTEM_VERSION 是指最低 api 级别还是目标 api 级别?

标签 android cmake android-ndk

使用CMake构建Android时,CMAKE_SYSTEM_VERSION对应的是最低api级别还是目标api级别?

最佳答案

这是 version of the operating system for which CMake is to build 。 CMake 设置它 to the Android API level 目标平台。通常,我们设置 CMAKE_ANDROID_API 而不是直接操作 CMAKE_SYSTEM_VERSION

不幸的是,NDK toolchain file ,我们都在 Android Studio 中使用的 Android gradle 插件使用了一组完全不同的变量,并将其设置为 1“禁止所有 CMake 自己的 NDK 处理代码” 。它需要 ANDROID_PLATFORM 代替。

无论如何,您关于最低 API 级别与目标 API 级别的问题非常重要。与 Android SDK 不同,NDK 平台支持不向后兼容。对于 Java,最佳做法是将目标 API 设置得尽可能高(并使用最新可用的 SDK 进行编译),并谨慎使用旧设备上可能不可用的 API。

对于 C++,我们必须以不同的方式工作。即使是最新的 NDK r18 也有可追溯到 android-16 的“平台”,因此您也可以构建 C++ 代码以在这个旧系统上运行。在 Android SDK 方面,this corresponds to minSdkVersion .

关于android - 对于 Android,CMAKE_SYSTEM_VERSION 是指最低 api 级别还是目标 api 级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52839663/

相关文章:

Android studio NDK 未定义对 GL 函数的引用

java - 如何获取用户在android编辑文本中输入的所有特殊字符

java - 如何在 Gowalla Java (Android) 中获取访问 token

android - 如何定义android中Horizo​​ntal recyclerview中的项目数量?

android - Json 数据未加载到 fragment 中?

android - NDK、LOCAL_EXPORT_C_INCLUDES 未按预期工作

visual-c++ - CMake cl.exe 无法编译简单的测试程序

c++ - 为什么我们在建库的时候要设置符号链接(symbolic link)呢?

c++ - cpplint.py 和 cmake : how to specify include files

android - SIGBUS 仅在三星 Galaxy S2 上崩溃