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 [参数]

NDK常用命令的更多相关文章

  1. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  2. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  3. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  4. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  5. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  6. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  7. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  8. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  9. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

随机推荐

  1. sql语句-排序后加入序号再运算判断取想要的项

    select a.id as aid,b.id as bid,a.city,a.cang,a.sid,a.time as atime,b.time as btime,a.price as aprice ...

  2. Eclipse配置--智能补全

    定位到:Windows→Preferences→Java→Editor→Content Assist 将Auto Activation triggers for java的默认值“.”修改为" ...

  3. git基本命令--tag, alias,

    git tag: 列出标签 在 Git 中列出已有的标签是非常简单直观的. 只需要输入 git tag: $ git tag v0. v1. 这个命令以字母顺序列出标签:但是它们出现的顺序并不重要. ...

  4. memcached的安装(server、client)、magent整合

    声明:本编文章基于网络上的文章(90%),基本就是把我的安装步骤写一下,遇到问题记录一下 1.背景:项目需要多台服务器负载均衡,我们的应用有付费会员,不能让一个账号随便登陆,一个时间段只能一个账号,这 ...

  5. pci 相关资料

    1.http://www.cnblogs.com/image-eye/archive/2012/02/15/2352699.html

  6. getopt(分析命令行参数)

    ref:http://vopit.blog.51cto.com/2400931/440453   相关函数表头文件         #include<unistd.h>定义函数       ...

  7. Update Case的用法与execute执行字符串

    摘自于网路:http://www.cnblogs.com/joinger/articles/1297160.html update h_crm_SafetyAccessUser set         ...

  8. call_grant_dml.sql

    set echo offpromptprompt =========================================================================== ...

  9. 动态链接库dll,导入库lib,静态链接库lib

    目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库” ...

  10. Java的引用c++的引用和C指针的区别

    Java的引用本质上就是C中的指针,而c++的引用则完全不同:有一个类 class Point { int x; int y;} 同样的一个Point p; 在Java中p表示一个引用,它等同于C语言 ...