如何在编译期间获取 NDK 版本?

How can I get the NDK version during compile time?

我搜索了一下,似乎在某个时候至少提出了 __NDK_MAJOR__,但至少从 NDK 15c 开始,它似乎没有被设置。

预处理器中是否有一种方法可以确定用于从源构建的 NDK 版本?

它在 r16 中。如果您需要在此之前知道版本,则需要解析 $NDK/source.properties 文件并将其作为构建系统的一部分作为定义传递给您的代码。

试试这些:

#include <android/api-level.h>
#ifdef __ANDROID_API_O_MR1__
#    include <android/ndk-version.h>
#    ifdef __NDK_MAJOR__
#        define MY_NDK_VERSION   __NDK_MAJOR__
#    else
#        define MY_NDK_VERSION   16
#    endif
#else
#    define MY_NDK_VERSION       14
#endif