安卓之Android.mk多文件以及动态库编译
1、多文件编译
多文件编译共有两种方式:
(1) 在Android.mk中一一添加
LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径
include $(CLEAR_VARS) #清空当前环境变量
LOCAL_MODULE:= test #编译生成的目标名称
LOCAL_SRC_FILES := test1.c \
test2.c \
test3.c
#编译该模块所需要的源文件
# LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
include $(BUILD_EXECUTABLE) #编译之后的文件类型
(2)在Android.mk中调用函数
LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径
include $(CLEAR_VARS) #清空当前环境变量
LOCAL_MODULE:= test #编译生成的目标名称
LOCAL_C_ALL_FILES := $(call all-c-files-under) #加载所有的文件
LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES
# LOCAL_SRC_FILES := test.c #编译该模块所需要的源文件
# LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
include $(BUILD_EXECUTABLE) #编译之后的文件类型
2、一个Android.mk生成多个目标文件,只需要在Android.mk下面做如下的操作
LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径
include $(CLEAR_VARS) #清空当前环境变量
LOCAL_MODULE:= test1 #编译生成的目标名称
LOCAL_C_ALL_FILES := $(call all-c-files-under) #加载所有的文件
LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES
# LOCAL_SRC_FILES := test.c #编译该模块所需要的源文件
# LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
include $(BUILD_EXECUTABLE) #编译之后的文件类型
LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径
include $(CLEAR_VARS) #清空当前环境变量
LOCAL_MODULE:= test2 #编译生成的目标名称
LOCAL_C_ALL_FILES := $(call all-c-files-under) #加载所有的文件
LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES
# LOCAL_SRC_FILES := test.c #编译该模块所需要的源文件
# LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
include $(BUILD_EXECUTABLE) #编译之后的文件类型
3、生成动态库,操作Android.mk
LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径
include $(CLEAR_VARS) #清空当前环境变量
LOCAL_MODULE:= libtest #编译生成的目标名称
LOCAL_SRC_FILES := test1.c \
test2.c \
test3.c
#编译该模块所需要的源文件
# LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
include $(BUILD_SHARED_LIBRARY) #编译之后的文件类型
4、生成静态库,操作Android.mk
LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径
include $(CLEAR_VARS) #清空当前环境变量
LOCAL_MODULE:= libtest #编译生成的目标名称
LOCAL_SRC_FILES := test1.c \
test2.c \
test3.c
#编译该模块所需要的源文件
# LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
include $(BUILD_STATIC_LIBRARY) #编译之后的文件类型
####共勉#####
安卓之Android.mk多文件以及动态库编译的更多相关文章
- Android.mk添加本地程序和库的经常使用模版
Android.mk添加本地程序和库的经常使用模版 Android中添加本地程序或者库.这些程序和库与其所在路径没有关系.仅仅与它们的配置文件Android.mk有关.Android.mk文件里可以主 ...
- C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项
目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...
- linux动态库编译和使用
linux动态库编译和使用详细剖析 引言 重点讲述linux上使用gcc编译动态库的一些操作.并且对其深入的案例分析.最后介绍一下动态库插件技术, 让代码向后兼容.关于linux上使用gcc基础编译, ...
- linux动态库编译和使用详细剖析 - 后续
引言 - 也许是修行 很久以前写过关于动态库科普文章, 废话反正是说了好多. 核心就是在 linux 上面玩了一下 dlopen : ) linux动态库编译和使用详细剖析 - https://www ...
- 动态库与静态库的学习 博主写的很好 静态库 编译的时候 需要加上 static 动态库编译ok运行不成功就按照文章中的方法修改
来源连接 http://www.cnblogs.com/skynet/p/3372855.html C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库 ...
- Android.mk各种文件编译汇总
一.源代码编译 1.1 so预编译 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libAppArea LOCAL ...
- 安卓之Android.mk编写
题记:编译环境可以参考https://www.cnblogs.com/ywjfx/p/9960817.html 不管是写C还是java,我想所有的程序员都经历过HelloWorld程序的编写,现在让我 ...
- Linux命令之ar - 创建静态库.a文件和动态库.so
转自:http://blog.csdn.net/eastonwoo/article/details/8241693 用途说明 创建静态库.a文件.用C/C++开发程序时经常用到,但我很少单独在命令行中 ...
- .h头文件 .lib库文件 .dll动态库文件之间的关系
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...
随机推荐
- Django-模型层(多表操作)
目录 1.创建模型 1.1方式一:自行创建第三张表 1.2方式二:通过ManyToManyField自动创建第三张表 1.3关于db_column和verbose_name 1.4关于on_delet ...
- vue父组件触发子组件方法
比如应用场景是弹窗中的组件,想要点弹窗时更新该组件展示对应记录的的值 methods: { edit (record) { this.mdl = Object.assign({}, record) t ...
- 使用 ESlint、lint-staged 半自动提升项目代码质量
最近在项目部署了ESlint还有一些配套的工具,比如 prettier husky lint-staged,有些心得写出来分享下. 依据本篇可以实现在git commit之时,重新格式化代码,同时进行 ...
- 发布WS接口与实现WS接口[小列子]
webservice简介:Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间, ...
- 2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest- H. Rikka with A Long Colour Palette -思维+贪心
2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest- H. Rikka with A Long Colour Palette -思维+贪心 [Proble ...
- nginx证书配一波
nginx下,拿到crt和key就可以开始干~ 同一个nginx,多个域名,没问题. server { listen 80; listen 443 ssl; server_name www.xxx.c ...
- 《基于 UML 的教务系统设计方法研究》论文笔记(十五)
标题:基于 UML 的教务系统设计方法研究 时间:2009 来源:太原师范学院 关键词:UML:面向对象:建模:教务管理系统. 二.研究内容 UML 建模 UML 涵盖了面向对象的分析.设计和实现,融 ...
- Alpha冲刺(6/10)——2019.4.29
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(6/10)--2019.4.29 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- ZOJ - 3157:Weapon (几何 逆序对)
pro:给定平面上N条直线,保证没有直线和Y轴平行. 求有多少交点的X坐标落在(L,R)开区间之间,注意在x=L或者R处的不算. sol:求出每条直线与L和R的交点,如果A直线和B直线在(L,R)相交 ...
- GITHUB常见命令
1 常用 $ git remote add origin git@github.com:yeszao/dofiler.git # 配置远程git版本库 $ git pull origin master ...