使用CMake构建时包含Android标头

时间:2017-10-31 10:24:15

标签: android c++ cmake android-ndk java-native-interface

我使用CMake为Android构建本机库.so。我添加了以下内容。

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()命令可能包含了NDK库和android/log.h这样的标题,但显然并非如此。在CMake中包含NDK提供的头文件和库的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

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

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

如果您需要使用CMake android工具链(如您的示例所示),那么您似乎需要设置包含路径: include_directories(/路径/到/机器人-NDK / loglib)