android.mk 模块编译,通过Android.mk添加一个编译模块到系统中的顺序如下
①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添加一个编译模块到系统中的顺序如下相关推荐
- 阅读软件怎么添加书源_FANUC仿真软件怎么添加多个机器人到系统中
FANUC仿真软件怎么添加多个机器人到系统中 点击"New Cell" 选择"HandingPRO"后点击"NEXT" 点击"Ne ...
- 解决Android软键盘弹出覆盖h5页面输入框问题 // 在ios系统中输入框软键盘消失后,页面不回弹的问题 // 解决苹果不回弹页面 // 微信环境打开
//解决Android软键盘弹出覆盖h5页面输入框问题 window.addEventListener('resize', () => {if (document.activeElement.t ...
- windows服务器添加虚拟网卡,在WindowsServer2008R2系统中安装虚拟网卡.pdf
在Windows Server 2008 R2 系统中安装虚拟网卡 在Windows Server 2008 R2 系统中安装虚拟网卡 (1) 打开"运行",输入"dev ...
- 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有
1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /**** ...
- 网络位置添加一个ftp服务器,win7网络中添加ftp服务器
win7网络中添加ftp服务器 内容精选 换一换 支持.SFS容量型文件系统:支持为SFS容量型文件系统配置多个VPC,以使归属于不同VPC的云服务器,只要所属的VPC被添加到文件系统的VPC列表下, ...
- 怎么给当前计算机添加一个用户,如何在win7中添加新账户 2种创建win7新用户方法总结...
对于很多家庭电脑或者共用电脑用户来说,往往会在电脑中创建多个登录用户,以满足不同用户不同桌面需求.那么在日常电脑使用过程中,我们应该如何计算机添加新账户呢?接下来脚本之家编辑针对时下最流行的Win7系 ...
- linux中添加一个用户名和密码,uClinux中添加Telnetd登陆时的用户名和密码
方法1: 编译Kernel的时,make menuconfig,打开Tinglogin,选择adduser(主要用于创建用户的password),addgroup(否则编译会报错,adduser程序中 ...
- python添加一个球_在Python中创建一个旋转球体
我已经做了这个代码,在一个球形的方式应用球谐函数,因为我正在尝试建立恒星脉动模式的模型.理想情况下,我希望能够有一个可以旋转的图像,可以保存为gif图像.我已经找到了一些代码示例,但是这些示例似乎都不 ...
- Android中添加自己的模块 【转】
本文转载自:http://wallage.blog.163.com/blog/static/17389624201021791333695/ 转:http://blog.csdn.net/yili_x ...
最新文章
- void函数返回值_(*void(*)()0)() 是什么
- mysql索引排序算法_MySQL中利用索引对数据进行排序的基础教程
- 学习动态性能表(3)--v$sqlv$sql_plan
- 【二分查找】及相关问题
- 【shell】Linux shell 之 判断用户输入的变量是否为数字
- Google Map API v2 步步为营 (二)----- Location
- gdal进行遥感影像读写_如何使用遥感影像进行矿物勘探
- 【资料篇】你需要掌握SEO的8个常用知识点
- 记一次高io wait问题分析及解决-设置合理的SGA
- 美女DBA带你了解PostgreSQL用户及角色
- Java中一个线程只有六个状态。至于阻塞、可运行、挂起状态都是人们为了便于理解,自己加上去的。...
- CodeBlocks下搭建Opencv——问题之——计算机中丢失 opencv_world300.dll
- jQuery 的 ajax 请求方法
- 企业信息安全模型(成熟度模型)
- C语言经典例70-编写求字符串长度函数
- C语言练习题:输入一行字符,统计其中的英文字符、数字字符、空格和其他字符的个数。
- MySQL之mysqldump备份数据库
- 电脑tdr太低是什么意思_威猫解惑丨新版Substance Painter出现TDR值太低警告的解决办法...
- TouchDesigner案例(十)缤纷
- 自定义Teams会议录像提示
热门文章
- html中显示数据库中的一条数据,如何使用html表显示数据库中的数据
- 什么是高清DVI光端机?dvi光端机的技术参数及应用有哪些?
- 以太网交换机坏了,能否用光纤收发器来替代?
- [渝粤教育] 中国地质大学 金融保险业会计 复习题 (2)
- 【渝粤题库】陕西师范大学200431综合英语(一)作业(高起专、高起本)
- 服务器突然关机的操作系统日志,一台R410 服务器不定时宕机,系统日志只有“上一次系统是意外关闭”...
- android studio ignore 模板,android studio git ignore
- _Linux 最常用命令整理,建议收藏!
- linux忘记mysql密码_linux下忘记mysql root密码解决办法 | 系统运维
- MATLAB库函数firls(最小二乘线性相位FIR滤波器设计)的C语言实现