使用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/