使用CMake构建时包含Android头文件
我使用CMake构建了一个本机库。Android也是如此。我补充了以下内容使用CMake构建时包含Android头文件,android,c++,cmake,android-ndk,java-native-interface,Android,C++,Cmake,Android Ndk,Java Native Interface,我使用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) 但是,我得到一个错误,即运行m
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
。我猜想前面的set()
命令可能包含NDK libs和类似android/log.h
的头文件,但显然不是这样。在CMake中包含NDK提供的标题和LIB的最佳方式是什么?您最好的选择是使用Android Studio驱动CMake。这是使用NDK CMake工具链的最简单方法,无论使用哪种NDK,该工具链都将正确设置路径
如果没有Android Studio,使用NDK CMake工具链是可能的,但难度更大。生成项目时,需要在命令行上将NDK工具链文件的路径传递给CMake
如果您需要使用CMake android工具链(如您的示例所示),那么您似乎需要设置包含路径:
include_目录(/path/to/android ndk/loglib)你真的为
CMAKE_android_ndk
放了/path/to/android ndk
,还是你把正确的路径放在了ndk在你机器上的位置?我系统中的实际路径已经放好了。我知道android studio做得很好,我希望复制它。它必须使用一些系统化的方法来完成我试图做的事情。如果你没有使用Studio,你应该使用NDK中包含的CMake工具链文件cmake-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.TOOLCHAIN.cmake
。查看该文件顶部的其他选项列表。