android.mk编译动态库,安卓之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) #编译之后的文件类型
####共勉#####
原文:https://www.cnblogs.com/ywjfx/p/10004564.html
android.mk编译动态库,安卓之Android.mk多文件以及动态库编译相关推荐
- c语言多文件程序编译和链接,C语言知识汇总 | 04-源文件、可执行程序、编译与链接...
一.源文件(Source File) 在开发软件的过程中,需要将编写好的代码(Code)保存到一个文件中,这样代码才不会丢失,才能够被编译器找到,才能最终变成可执行文件.这种用来保存代码的文件就叫做源 ...
- android+源码usb驱动,安卓打印驱动最全驱动源码库(usbSerialForAndroid)
[实例简介] 此项目用于安卓小票打印驱动.(稳定版)已用于实际项目 支持: USB转串口线.纯串口阵脚打印线.纯USB打印线.Cp21xx.USB CDC/ACM serial.FTDI Serial ...
- android输入法开发软件,开发安卓系统Android和码输入法软件的全过程(二)
2012年01月20日星期五 Android IMF给输入软件的编写给出的规范,也提供了很多的方便.这里从例子程序SoftKeyboard来认识. 1.软键盘界面的设计,可以用XML文件来做,这真是很 ...
- android文档怎么打开,安卓手机如何打开.tn6文件?
01 安卓手机是不能直接打开tn6文件的.我们有〇个与TN6文件相关的已知软件程序,它们可以归类为〇种主要文件类型,通常这些文件被视为BinaryData格式,因此可以使用FileViewPro文件查 ...
- android dat怎么打开方式,安卓手机如何打开.dat文件?
01 打开安卓手机[文件管理]-[本地文件]后即可找到[dat]文件,选择合适的方式打开.dat文件,比如直接打开.其他方式等. .DAT并不是一种标准文件.许多软件都使用这个扩展名,但文件含义不同. ...
- 库文件、静态库(lib)与动态库(dll)的生成与使用
静态库 程序编译一般需经预处理.编译.汇编和链接几个步骤.在应用中,有一些公共代码是需要反复使用,就把这些代码编译为"库"文件:在链接步骤中,连接器将从库文件取得所需的代码,复制到 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- 【Android FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视频基础 | MPEG-4 标准 | Android 开发环境 | FFMPEG 交叉编译 | 安卓项目导入配置 )
本篇博客代码及资源下载 : https://download.csdn.net/download/han1202012/10382762 文章目录 一. 音视频基础 1. 音频基础 (1) 声音要素 ...
- 【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )
文章目录 一.修改 7zr 交叉编译脚本 Android.mk 二.完整的 7zr 交叉编译脚本 Android.mk 三.交叉编译 lib7zr.a 静态库 四.Android Studio 导入 ...
最新文章
- android ajax 跨域更新本地html,本地webapp是怎么解决跨域问题的?
- Kinect for windows的脸部识别
- C++之指向对象成员函数的指针
- 从 wiscKey 看 LSMtree 的不足
- 秒懂 QPS、TPS、PV、UV、IP!
- 大数据实验报告总结体会_建设大数据中台架构思考与总结
- 关于deepearth的一点小问题
- GL中如何让画的点为圆形
- SpringBoot依赖管理,版本仲裁
- 程序员vim的最终解决方案
- SilverLight企业应用框架设计【一】整体说明
- 在线制作车牌效果图_价格低的防火板材行业专家在线为您服务
- 继承接口Java多线程(二)、启动一个线程的3种方式
- 概率论——伯努利和二项随机变量
- 专为Oracle数据库恢复而生 - PRM
- fh 幅频特性曲线怎么画fl_测量rc带通滤波器的幅频特性和相频特性-电子科技大学.ppt...
- 实现echarts图多个legend图例和自定义legend中字体颜色
- 架构师之路-秒杀系统优化思路
- 我不小心删除了dwm.exe。就是桌面窗口管理器的那个程序哈哈
- 航测新旗舰|大疆M300+赛尔102S
热门文章
- 【异或交换原理】按位进行异或操作,实现数的交换
- 卡尔曼滤波---实例讲解
- 用中断的方式实现delay延时的一点注释
- 2013 javaB1 世纪末的日期
- Cause: org.postgresql.util.PSQLException: ERROR: column province_id does not exist
- 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)
- 猫、交换机和路由器的区别
- python oracle 运维,mysql oracle python连接
- Matlab画图中的小技巧
- linux实验串行端口程序设计,Linux下串口编程心得(转)