MASTG-TOOL-0005:Android NDK

Android NDK 包含本机编译器和工具链的预构建版本。传统上,GCC 和 Clang 编译器都受到支持,但对 GCC 的有效支持已在 NDK 修订版 14 中结束。设备架构和主机操作系统决定了合适的版本。预构建的工具链位于 NDK 的 toolchains 目录中,该目录包含每个架构的子目录。

架构 工具链名称
基于 ARM arm-linux-androideabi-<gcc-version>
基于 x86 x86-<gcc-version>
基于 MIPS mipsel-linux-android-<gcc-version>
基于 ARM64 aarch64-linux-android-<gcc-version>
基于 X86-64 x86_64-<gcc-version>
基于 MIPS64 mips64el-linux-android-<gcc-version>

除了选择正确的架构之外,还需要为要定位的本机 API 级别指定正确的 sysroot。sysroot 是一个目录,其中包含目标的系统头文件和库。本机 API 因 Android API 级别而异。每个 Android API 级别的可用 sysroot 目录可在 $NDK/platforms/ 中找到。每个 API 级别目录都包含各种 CPU 和架构的子目录。

设置构建系统的一种可能性是将编译器路径和必要的标志导出为环境变量。但是,为了简化操作,NDK 允许您创建一个所谓的独立工具链,这是一个包含所需设置的临时工具链。

要设置独立的工具链,请下载最新的 NDK 稳定版本。解压缩 ZIP 文件,更改到 NDK 根目录,然后运行以下命令

./build/tools/make_standalone_toolchain.py --arch arm --api 24 --install-dir /tmp/android-7-toolchain

这会在目录 /tmp/android-7-toolchain 中为 Android 7.0(API 级别 24)创建一个独立的工具链。为方便起见,您可以导出一个指向工具链目录的环境变量(我们将在示例中使用它)。运行以下命令或将其添加到您的 .bash_profile 或其他启动脚本

export TOOLCHAIN=/tmp/android-7-toolchain