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

时间:2018-10-16 16:05:15

标签: android cmake android-ndk

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

1 个答案:

答案 0 :(得分:1)

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

不幸的是,我们都与Android Studio一起使用的Android gradle插件使用的NDK toolchain file使用了完全不同的变量集,并将其设置为1“所有CMake自己的NDK处理代码” 。它希望使用 ANDROID_PLATFORM

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

使用C ++,我们必须进行不同的工作。甚至最新的NDK r18的“平台”都可以追溯到android-16,因此您也可以构建C ++代码以在该旧系统上运行。对于Android SDK,this corresponds to minSdkVersion