在CMake工程中使用NDK独立工具链 (一)

2019-04-12  本文已影响0人  RonZheng2010

这里的做法只针对android-ndk-r19之前的版本。从android-ndk-r19开始,就不必再调用make_standalone_toolchain.py创建工具链了。

1. 下载 NDK

从Android官网NDK归档找到需要的NDK版本,并下载解压:

$ wget https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip
$ unzip android-ndk-r17c-linux-x86_64.zip

2. 创建独立工具链

make_standalone_toolchain.py 脚本从NDK创建自定义工具链。

$ ./build/tools/make_standalone_toolchain.py -h
optional arguments:
  --arch {arm,arm64,x86,x86_64}
  --api API                     Target the given API version (example: "--api 24").
  --stl {gnustl,libc++,stlport} C++ STL to use.
  --install-dir INSTALL_DIR     Install toolchain to the given directory instead of packaging.

如下命令创建的工具链为ARM 64位,Android API 26,安装目录为ndk-toolchain。

$./build/tools/make_standalone_toolchain.py \
  --arch arm64 \
  --api 28 \
  --install-dir=ndk-toolchain

ndk_toolchain主要包括如下目录:

3. CMake设置

如果使用CMake构建工程,需要配置相应的CMAKE_TOOLCHAIN_FILE,如下是针对如上工具链的例子。

# toolchain file example
set (CMAKE_SYSTEM_NAME  Android)
set (CMAKE_SYSTEM_VERSION 28)
set (CMAKE_ANDROID_ARCH_ABI arm64-v8a)

set (CMAKE_ANDROID_STANDALONE_TOOLCHAIN ~/ndk_toolchain)

相关链接

CMake 常用法
用CMake构建中等规模的工程
在CMake工程中使用NDK独立工具链 (一)
在CMake工程中使用NDK独立工具链 (二)

参考资料

NDK 归档
https://developer.android.google.cn/ndk/downloads/older_releases.html

NDK - 指南 - 独立工具链
https://developer.android.google.cn/ndk/guides/standalone_toolchain

Cross Compiling for Android with a Standalone Toolchain
https://cmake.org/cmake/help/v3.12/manual/cmake-toolchains.7.html#id21

上一篇 下一篇

猜你喜欢

热点阅读