在使用CMake构建时包括Android标头



我使用CMake构建了一个本地库。因此适用于Android。我添加了以下内容。

set(CMAKE_SYSTEM_NAME Android)
set(CMAKE_SYSTEM_VERSION 21) # API level
set(CMAKE_ANDROID_ARCH_ABI arm64-v8a)
set(CMAKE_ANDROID_NDK /path/to/android-ndk)
set(CMAKE_ANDROID_STL_TYPE gnustl_static)

然而,我得到的错误是,在运行make时没有找到#include <android/log.h>。我猜前面的set()命令可能包含了类似android/log.h的NDK库和头,但显然不是这样。在CMake中包含NDK提供的头和库的最佳方式是什么?

您最好使用Android Studio来驱动CMake。这是使用NDK CMake工具链的最简单方法,无论您使用哪种NDK,它都将正确设置路径。

在没有Android Studio的情况下使用NDK CMake工具链是可能的,但更难。生成项目时,您需要在命令行上将NDK工具链文件的路径传递给CMake。

如果您需要使用CMake android工具链(如您的示例中所示),则似乎需要设置include路径:include_directories(/path/to/android-ndk/loglib)

最新更新