NDK Build 用法(NDK Build)(转)

1、ndk-build的用法

Android NDKr4引入了一个新的、小巧的shell脚本ndk-build,来简化源码编译。

该文件位于NDK根目录,进入你的工程根目录或子目录之后,在命令行下调用即可。例如:

cd $PROJECT

$NDK/ndk-build

NDK指向你的NDK的安装目录,PROJECT指向你的Android工程目录。建议将ndk-build所在目录加入PATH环境变量或设置alias。

2、ndk-build的选项

所有给ndk-build的选项都会直接传给GNU Make,由make运行NDK的编译脚本。几个常见调用方式如下:

ndk-build                   编译

ndk-build clean          清掉二进制文件

ndk-build NDK_DEBUG=1     编译为可调试版的二进制文件

ndk-build NDK_DEBUG=0     编译为release版

ndk-build V=1                       执行ndk-build且打印出它所执行的详细编译命令。

ndk-build -B                          强制重新编译

ndk-build -B V=1                   -B 和 V=1 的组合

ndk-build NDK_LOG=1          打印出内部的NDK日志信息(用于调试NDK自己)

ndk-build NDK_APP_APPLICATION_MK=<文件路径>      用这里指定的路径寻找Application.mk文件

ndk-build -C <project路径>  先cd进入<project路径>,然后执行ndk-build。

3、Debug版本 Vs Release版本

在NDKr5中,ndk-build做了一些改进,使得在release和debug之间切换更容易了。即通过 NDK_DEBUG 变量:

ndk-build NDK_DEBUG=1    编译出的共享库带调试信息,是debug版本

ndk-build NDK_DEBUG=0    编译出的共享库不带调试信息,是release版本

如果没有指定NDK_DEBUG,则会从 AndroidManifest.xml中获取(查看 <application> 元素是否有 android:debuggable="true")。

注意:如果你的SDK是SDKr8或更高,完全不需要修改AndroidManifest.xml。因为如果你想编译出debug版安装包(在命令行下执行 ant debug或用ADT),SDK的工具会自动选择用NDK_DEBUG=1编译出的共享库。NDK编译出的debug版和release版的object文件存放在不同的目录(例如 obj/local/<abi>/objs 和 obj/local/<abi>/objs-debug),避免了在release和debug之间切换而重新编译所有文件。

4、ndk-build的使用条件

总体来说,必须安装GNU Make 3.81 以上版本的make才能正常使用ndk-build和NDK。

5、ndk-build的实质

ndk-build 其实就是对GNU Make的封装,它的目的是调用正确的NDK编译脚本,它等价于 make -f $NDK/build/core/build-local.mk [参数]

时间: 2024-10-24 08:55:48

NDK Build 用法(NDK Build)(转)的相关文章

NDK学习二: NDK目录结构

NDK目录结构 NDK下载好之后目录结构如下: 目录名 描述 build   存放和编译相关的脚本文件,最外面的ndk-build就是调用该目录下的makefile文件,其中makefile文件都存放在build/core目录 docs  帮助文档 platforms  存放不同android版本,不同平台架构的头文件和库文件 prebuilt  存放和编译相关工具比如make.exe samples ndk代码例子,用根目录下的ndk-build即可编译 source 源码目录,有一些头文件和

Android NDK:②第一个NDK程序(创建步骤&amp;一些问题)

Android NDK:②第一个NDK程序(创建步骤&一些问题) 本节内容是:演示搭建第一个NDK程序 Android NDK第一个NDK程序创建步骤一些问题 创建一个Android Project Java代码中声明native方法 创建Jni文件夹编写ccpp代码 为项目添加NDK支持 新建配置一个Builder 调用了native方法的地方加载库 好了把程序跑起来 总结 遇到的问题 1.创建一个Android Project 直接创建一个新的Android Application Proj

BUILD FAILED D:\build.xml:2: 前言中不允许有内容。

1.错误描述 Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\Administrator>d: D:\>ant Buildfile: D:\build.xml BUILD FAILED D:\build.xml:2: 前言中不允许有内容. Total time: 0 seconds D:\> 2.错误原因 3.解决办法

spring 以Ant Build方式运行build.xml文件,报warning: &#39;includeantruntime&#39; was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 的解决办法

Buildfile: F:\experience\spring_pdf\sourcecode\example1\build.xml compile: [javac] F:\experience\spring_pdf\sourcecode\example1\build.xml:25: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable

解决Docker build时 Sending build context to Docker daemon 过大的问题

当使用Dockerfile Build镜像时,优势会发现发送到Daemo的内容过大 build image:q_build/javaweb:20150910174642Sending build context to Docker daemon 4.768 GBSending build context to Docker daemon  Step 0 : FROM 192.168.100.123:5000/q_basic/javaweb:1.0  ---> 0aab72ab2945 Step 

eclipse中Build Path-Add to Build Path对应到androidstud

有些时候并不需要添加lib库进行编译,例如在使用xposed的jar包时,只需要在eclipse里Build Path-Add to Build Path即可,如果作为lib库添加进去反而会出现异常. 以下是引用的原文: -------------------------------------- Next, make the XposedBridge API known to the project. You can downloadXposedBridgeApi-<version>.jar

BUILD FAILED D:\build.xml:2: 前言中不同意有内容。

1.错误描写叙述 Microsoft Windows [版本号 6.1.7601] 版权全部 (c) 2009 Microsoft Corporation. 保留全部权利. C:\Users\Administrator>d: D:\>ant Buildfile: D:\build.xml BUILD FAILED D:\build.xml:2: 前言中不同意有内容. Total time: 0 seconds D:\> 2.错误原因 3.解决的方法

eclipse中Build Path-Add to Build Path对应到androidstudio的设置

有些时候并不需要添加lib库进行编译,例如在使用xposed的jar包时,只需要在eclipse里Build Path-Add to Build Path即可,如果作为lib库添加进去反而会出现异常. 以下是引用的原文: -------------------------------------- Next, make the XposedBridge API known to the project. You can downloadXposedBridgeApi-<version>.jar

android studio ndk配置和ndk开发

配置开发环境: 1:下载ndk,导入android studio中. 2:在项目中引入NDK   3:在计算机path变量中导入NDK路径,在编译.h文件的时候会用到. 一:建立java的native方法,然后编译生成.class文件. 二:根据.class文件生成.h文件. 1:打开Terminal,然后进入APP目录下的main主目录. 2:输入命令. 3:生成.h文件,生成的jni文件夹在main文件夹下. 三:根据.h文件编写.c文件. #include <string.h> #inc