NDK编译——ndk-build
来源:互联网 发布:mysql禁用反向解析 编辑:程序博客网 时间:2024/05/29 17:42
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/ndk-build.html
ndk-build
本页内容
- 内部构建
- 从命令行调用
- 64 位和 32 位工具链
- 要求
ndk-build
文件是 Android NDK r4 中引入的一个 shell 脚本。其用途是调用正确的 NDK 构建脚本。
内部构建
运行 ndk-build
脚本相当于运行以下命令:
$GNUMAKE -f <ndk>/build/core/build-local.mk<parameters>
$GNUMAKE
指向 GNU Make 3.81 或更新版本,<ndk>
指向 NDK 安装目录。 您可以使用此信息从其他 shell 脚本甚至您自己的 Make 文件调用 ndk-build。
从命令行调用
ndk-build
文件位于 NDK 安装目录的顶层。若要从命令行运行该文件,请在应用项目目录中或其子目录中调用它。例如:
cd <project>$ <ndk>/ndk-build
在此示例中,<project>
指向项目的根目录,<ndk>
是您安装 NDK 的目录。
选项
ndk-build 的所有参数将直接传递到运行 NDK 构建脚本的底层 GNU make
。 将 ndk-build
和表单 ndk-build <option>
中的选项结合使用。 例如:
$ 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=<file>
- 使用
NDK_APPLICATION_MK
变量指向的特定Application.mk
文件构建。 -C <project>
- 构建位于
<project>
的项目路径的原生代码。如果您不想在终端通过cd
切换到该路径,则此选项非常有用。
可调试版与发布版构建
使用 NDK_DEBUG
选项,在特定情况下,通过 AndroidManifest.xml
指定调试版或发布版构建、与优化相关的行为以及是否包含符号。 表 1 显示每个可能的设置组合的结果。
表 1. NDK_DEBUG
(命令行)的结果和 android:debuggable
(清单)组合。
*2:用于运行
ndk-gdb
的默认值。*3:默认模式。
注: NDK_DEBUG=0
等同于 APP_OPTIM=release
,并符合 GCC -O2
选项。NDK_DEBUG=1
等同于 Application.mk
中的 APP_OPTIM=debug
,并符合 GCC -O0
选项。 如需了解有关 APP_OPTIM
的详细信息,请参阅 Application.mk。
例如,命令行上的语法为:
$ ndk-build NDK_DEBUG=1
如果您使用 SDK r8 以前版本的构建工具,您还必须修改您的 AndroidManifest.xml
文件以指定调试模式。 执行此操作的语法类似于如下:
<application android:label="@string/app_name"android:debuggable="true">从 SDK r8 开始,您不需要使用
AndroidManifest.xml
。构建调试软件包(例如,使用 ant 调试或对应的 ADT 插件选项)可使工具自动选取通过 NDK_DEBUG=1
生成的原生调试文件。64 位和 32 位工具链
某些工具链附带 64 位和 32 位版本。例如,目录 <ndk>/toolchain/<name>/prebuilt/
和 <ndk>/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 之前指向它。 例如:
$ export GNUMAKE=/usr/local/bin/gmake$ ndk-build
您可以在 $NDK/prebuilt/<OS>/bin/
中将其他主机预构建工具替换为下列环境变量:
$ export NDK_HOST_AWK=<path-to-awk>$ export NDK_HOST_ECHO=<path-to-echo>$ export NDK_HOST_CMP=<path-to-cmp>
- NDK编译——ndk-build
- ndk build 编译解释
- ndk-build编译faad2
- Android逆向基础笔记—Android NDK开发3之使用ndk-build工具手动编译
- NDK build编译的解析
- 提高ndk-build编译速度
- NDK build编译的解析
- ndk-build编译速度提升
- ndk-build编译选项及ndk-build clean命令
- NDK build
- ndk-build
- ndk-build
- ndk-build
- ndk-build
- NDK编译——概念
- NDK编译——CMake
- NDK-build 编译静态库 没有反应
- Cygwin下ndk-build编译错误解决
- ACM初窥门径(一)
- js统计字符串中字符出现的个数以及最大个数
- caffe:create_txt.sh(数据预处理成txt文本文件)
- 一道水题?
- Python文件执行代码步骤
- NDK编译——ndk-build
- 微信小程序Radio选中样式切换
- Java多线程系列--“基础篇”09之 interrupt()和线程终止方式
- 百度Apollo简介
- ubuntu 17.04 安装vmware tools
- 文件和流学习总结1
- Repository和Registry区别
- coin collector(一道测试题)
- python 字符串