从android-ndk-r19开始,NDK提供了脚本android.toolchain.cmake,设置CMake所需工具链位置。
1. 下载 NDK
从Android官网NDK归档找到需要的NDK版本,并下载解压:
$ wget https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip
$ unzip android-ndk-r19c-linux-x86_64.zip
2. CMake设置
android.toolchain.cmake在build/cmake目录下,首先用include()调用这个脚本设置工具链位置。
这里使用c++_shared作为C++库,需要调用add_compile_options()指定C++库的头文件位置。
clang使用--target选项指定目标architecture。这里通过CMAKE_C_FLAGS指定它的值为armv7a-linux-androideabi28。
如果有一些所有模块都使用的库,如liblog.so, ligz.so,可以使用add_link_options()链接它们。
set (ANDROID_ABI arm64-v8a)
set (ANDROID_PLATFORM android-28)
set (ANDROID_TOOLCHAIN clang)
set (ANDROID_STL c++_shared)
include (${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake)
set (CMAKE_C_FLAGS --target=armv7a-linux-androideabi28)
add_compile_options (-I${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1)
add_link_options (-llog -lz)
相关链接
CMake 常用法
用CMake构建中等规模的工程
在CMake工程中使用NDK独立工具链 (一)
在CMake工程中使用NDK独立工具链 (二)
参考资料
Using the NDK with other build systems
https://developer.android.google.cn/ndk/guides/other_build_systems?hl=zh-cn
网友评论