①LOCAL_PATH

②CLEAR_VARS

③LOCAL_SRC_FILES

④LOCAL_CFLAGS(可选)

⑤LOCAL_MODULE

⑥LOCAL_STATIC_LIBRARIES(可选)

⑦BUILD_XXX

(12)Android.mk常用的变量

变量名 说明

LOCAL_PATH 用于确定源码所在的目录,最好把它放在CLEAR_VARS变量引用的前面,因为它不会被清除,每个Android.mk只需要定义

一次即可。

CLEAR_VARS 它清空了很多以LOCAL_开头的变量(LOCAL_PATH除外)。由于所有的MakeFile都是在一个编译环境下执行的,因此

变量的定义理论上是全局的,在每个模块编译开始前进行清理工作是必要的。

LOCAL_MODULE 模块名,需保证在整个编译系统中是唯一存在的,而且中间不可以有空格

LOCAL_MODULE_PATH 模块的输出路径

LOCAL_SRC_FILES 模块编译过程中涉及到的源文件。如果是JAVA程序,可以考虑调用all-subdir-java-files来一次性添加目录(包括子目录)下所有的java文件

因为有LOCAL_PATH,这里只需要给出文件名(相对路径)即可;而且编译系统有比较强的推导功能,可以自动计算依赖关系。

LOCAL_CC 用于指定C编译器

LOCAL_CXX 用于指定C++编译器(http://www.my516.com)

LOCAL_CPP_EXTENSION 用于指定特殊的C++文件后缀名

LOCAL_CFLAGS C语言编译时的额外选项

LOCAL_CXXFLAGS C++语言编译时的额外选项

LOCAL_C_INCLUDE 编译C和C++程序所需要的额外头文件

LOCAL_STATIC_LIBRARIES 编译所需的静态库列表

LOCAL_SHARED_LIBRARIES 编译时所需要的动态库列表

LOCAL_JAVA_LIBRARIES 编译时所需要的JAVA类库

LOCAL_LDLIBS 编译时所需要的链接选项

LOCAL_COPY_HEADERS 安装应用程序时所需要复制的头文件列表,需要和LOCAL_COPY_HEARERS_TO变量配合使用

LOCAL_MODULE_CLASS 标识所编译模块最后放置的位置。ETC表示放置在/system/etc.目录下,APPS表示放置在/system/app目录下,SHARED_LIBRARIES表示放置在/system/lib目录下。如果具体指定,则编译的模块不会放到编译系统中,最后会在out对应product的obj目录下的对应目录中。

LOCAL_MODULE_TAGS 当前模块所包含的标签,一个模块可以包含多个标签。标签的值可能是eng、user、debug、development、optional。其中,optional是默认标签。

LOCAL_DEX_PREOPT apk的odex优化开关,默认是false

$(call my-dir) 获取当前文件夹的路径

$(call all-java-files-under,) 获取指定目录下的所有java文件

$(call all-c-files-under, ) 获取指定目录下的所有c文件

$(call all-Iaidl-files-under, ) 获取指定目录下的所有AIDL文件

$(call all-makefiles-under, ) 获取指定目录下的所有Make文件

$(call intermediates-dir-for, , , , ) 获取Build输入的目标文件夹路径

BUILD_HOST_STATIC_LIBRARY

BUILD_HOST_SHARED_LIBRARY

BUILD_STATIC_LIBRARY

BUILD_RAW_STATIC-LIBRARY

BUILD_SHARED_LIBRARY

BUILD_EXECUTABLE

BUILD_RAW_EXECUTABLE

BUILD_HOST_EXECUTABLE

BUILD_PACKAGE

BUILD_HOST_PREBUILT

BUILD_PREBUILT

BUILD_MULTI_PREBUILT

BUILD_JAVA_LIBRARY

BUILD_STATIC_JAVA_LIBRARY

BUILD_HOST_JAVA_LIBRARY

BUILD_DROIDDOC

BUILD_COPY_HEADERS

BUILD_KEY_CHAR_MAP

android.mk 模块编译,通过Android.mk添加一个编译模块到系统中的顺序如下相关推荐

  1. 阅读软件怎么添加书源_FANUC仿真软件怎么添加多个机器人到系统中

    FANUC仿真软件怎么添加多个机器人到系统中 点击"New Cell" 选择"HandingPRO"后点击"NEXT" 点击"Ne ...

  2. 解决Android软键盘弹出覆盖h5页面输入框问题 // 在ios系统中输入框软键盘消失后,页面不回弹的问题 // 解决苹果不回弹页面 // 微信环境打开

    //解决Android软键盘弹出覆盖h5页面输入框问题 window.addEventListener('resize', () => {if (document.activeElement.t ...

  3. windows服务器添加虚拟网卡,在WindowsServer2008R2系统中安装虚拟网卡.pdf

    在Windows Server 2008 R2 系统中安装虚拟网卡 在Windows Server 2008 R2 系统中安装虚拟网卡 (1) 打开"运行",输入"dev ...

  4. 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

     1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /**** ...

  5. 网络位置添加一个ftp服务器,win7网络中添加ftp服务器

    win7网络中添加ftp服务器 内容精选 换一换 支持.SFS容量型文件系统:支持为SFS容量型文件系统配置多个VPC,以使归属于不同VPC的云服务器,只要所属的VPC被添加到文件系统的VPC列表下, ...

  6. 怎么给当前计算机添加一个用户,如何在win7中添加新账户 2种创建win7新用户方法总结...

    对于很多家庭电脑或者共用电脑用户来说,往往会在电脑中创建多个登录用户,以满足不同用户不同桌面需求.那么在日常电脑使用过程中,我们应该如何计算机添加新账户呢?接下来脚本之家编辑针对时下最流行的Win7系 ...

  7. linux中添加一个用户名和密码,uClinux中添加Telnetd登陆时的用户名和密码

    方法1: 编译Kernel的时,make menuconfig,打开Tinglogin,选择adduser(主要用于创建用户的password),addgroup(否则编译会报错,adduser程序中 ...

  8. python添加一个球_在Python中创建一个旋转球体

    我已经做了这个代码,在一个球形的方式应用球谐函数,因为我正在尝试建立恒星脉动模式的模型.理想情况下,我希望能够有一个可以旋转的图像,可以保存为gif图像.我已经找到了一些代码示例,但是这些示例似乎都不 ...

  9. Android中添加自己的模块 【转】

    本文转载自:http://wallage.blog.163.com/blog/static/17389624201021791333695/ 转:http://blog.csdn.net/yili_x ...

最新文章

  1. void函数返回值_(*void(*)()0)() 是什么
  2. mysql索引排序算法_MySQL中利用索引对数据进行排序的基础教程
  3. 学习动态性能表(3)--v$sqlv$sql_plan
  4. 【二分查找】及相关问题
  5. 【shell】Linux shell 之 判断用户输入的变量是否为数字
  6. Google Map API v2 步步为营 (二)----- Location
  7. gdal进行遥感影像读写_如何使用遥感影像进行矿物勘探
  8. 【资料篇】你需要掌握SEO的8个常用知识点
  9. 记一次高io wait问题分析及解决-设置合理的SGA
  10. 美女DBA带你了解PostgreSQL用户及角色
  11. Java中一个线程只有六个状态。至于阻塞、可运行、挂起状态都是人们为了便于理解,自己加上去的。...
  12. CodeBlocks下搭建Opencv——问题之——计算机中丢失 opencv_world300.dll
  13. jQuery 的 ajax 请求方法
  14. 企业信息安全模型(成熟度模型)
  15. C语言经典例70-编写求字符串长度函数
  16. C语言练习题:输入一行字符,统计其中的英文字符、数字字符、空格和其他字符的个数。
  17. MySQL之mysqldump备份数据库
  18. 电脑tdr太低是什么意思_威猫解惑丨新版Substance Painter出现TDR值太低警告的解决办法...
  19. TouchDesigner案例(十)缤纷
  20. 自定义Teams会议录像提示

热门文章

  1. html中显示数据库中的一条数据,如何使用html表显示数据库中的数据
  2. 什么是高清DVI光端机?dvi光端机的技术参数及应用有哪些?
  3. 以太网交换机坏了,能否用光纤收发器来替代?
  4. [渝粤教育] 中国地质大学 金融保险业会计 复习题 (2)
  5. 【渝粤题库】陕西师范大学200431综合英语(一)作业(高起专、高起本)
  6. 服务器突然关机的操作系统日志,一台R410 服务器不定时宕机,系统日志只有“上一次系统是意外关闭”...
  7. android studio ignore 模板,android studio git ignore
  8. _Linux 最常用命令整理,建议收藏!
  9. linux忘记mysql密码_linux下忘记mysql root密码解决办法 | 系统运维
  10. MATLAB库函数firls(最小二乘线性相位FIR滤波器设计)的C语言实现