原文链接:https://developer.android.com/ndk/guides/ndk-build.html#req
ndk-build文件是Android NDK r4中引入的一个shell脚本。其用途是调用正确的NDK构建脚本。
内部构建
运行ndk-build脚本相当于运行一下命令:
$GNUMAKE -f <ndk>/build/core/build-local.mk
<parameters>
$GNUMAKE 指向 GNU Make 3.81 或更新版本, 指向 NDK 安装目录。 您可以使用此信息从其他 shell 脚本甚至您自己的 Make 文件调用 ndk-build。
从命令行调用
ndk-build 文件位于 NDK 安装目录的顶层。若要从命令行运行该文件,请在应用项目目录中或其子目录中调用它。例如:
cd <project>
$ <ndk>/ndk-build
在此示例中, 指向项目的根目录, 是您安装 NDK 的目录。
选项
ndk-build的所有参数将直接传递到运行NDK构建脚本的底层GNUmake。将ndk-build和表单ndkbuild中的选项结合使用。例如:
$ ndk-build clean
提供的选项如下:
clean
移除以前生成的任意二进制文件。
V=1
启动构建,并显示构建命令。
-B
强制执行完全的重新构建。
-B V=1
强制执行完全的重新构建,并显示构建命令。
NDK_LOG=1
显示内部 NDK 日志消息(用于调试 NDK 本身)。
NDK_DEBUG=1
强制执行可调试版构建(请参阅表 1)。
NDK_DEBUG=0
强制执行发布版构建(请参阅表 1)。
NDK_HOST_32BIT=1
始终使用 32 位模式下的工具链(请参阅 64 位和 32 位工具链)。
NDK_APPLICATION_MK=
使用 NDK_APPLICATION_MK 变量指向的特定 Application.mk 文件构建。
-C
构建位于 的项目路径的原生代码。如果您不想在终端通过 cd 切换到该路径,则此选项非常有用。
可调试版与发布版构建
使用NDK_DEBUG选项,在特定情况下,通过AndroidManifest.xml指定调试版或发布版构建、与优化相关的行为以及是否包含符合。表1显示每个可能的设置组合的结果。
64位和32位工具链
某些工具附带 64 位和 32 位版本。例如,目录 /toolchain//prebuilt/ 和 /prebuilt/ 可能同时包含分别用于 32 位和 64 位模式中的 Linux 工具的 linux-x86 和 linux-x86_64 文件夹。 ndk-build 脚本自动选择工具链的 64 位版本(如果主机操作系统支持)。 您可以通过在您的环境中或 ndk-build 命令行中使用 NDK_HOST_32BIT=1 来强制使用 32 位工具链。
请注意,64 位工具可以更好地利用主机资源(例如,它们速度更快,并且可处理更大的程序),同时它们仍可以为 Android 生成 32 位二进制文件。
要求
一把情况下,您需要安装GNU Make 3.81 或更新版本才能使用 ndk-build 或 NDK。构建脚本将检测不兼容的 Make 工具,并生成错误消息。如果您已安装 GNU Make 3.81,但默认 make 命令不能启动它,则在您的环境中定义 GNUMAKE 以便在启动 ndk-build 之前指向它。 例如:
exportGNUMAKE=/usr/local/bin/gmake
ndk-build
您可以在 $NDK/prebuilt//bin/ 中将其他主机预构建工具替换为下列环境变量:
exportNDKHOSTAWK=
export NDK_HOST_ECHO=
$ export NDK_HOST_CMP=