安卓之Android.mk多文件以及动态库编译
2024-08-30 22:55:34
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) #编译之后的文件类型
####共勉#####
最新文章
- C#模拟HTTP Form请求上传文件
- webapi returntype
- Expert 诊断优化系列------------------冤枉磁盘了
- python函数和常用模块(三),Day5
- Oracle【IT实验室】数据库备份与恢复之六:LogMiner
- word转html方法
- Android性能优化方法(六)
- IOS 作业项目(4)步步完成 画图 程序(上)
- MAC上搭建Jenkins + Android + IOS自动开发部署环境
- [RxJS] Filtering operator: filter
- C#中的转义字符
- vs2010根据字符串内容添加断点
- KMP详解之二
- 使用javaconfig配置freemarker
- java操作elasticsearch实现query String
- Note: SE Class's Individual Project
- java adapter(适配器)惯用方法
- C++的基本类型
- MATLAB(2)——小波工具箱使用简介
- 【PyQt5 学习记录】002:添加部件及网格布局
热门文章
- php导出数据到csv
- 【监控】jvisualvm之jmx远程连接 tomcat war启动应用
- js中的attribute详解
- 微信小程序~跳页传参
- 对象输入输出流ObjectInputStream、ObjectOutputStream(对象的序列化与反序列化)
- debug版本的DLL调用release版本的DLL引发的一个问题
- 独角兽估值30亿美金,我们聊聊RPA是什么
- js中四舍五入保留两位效数,js中将Number转换成字符类型
- 关于#pragma once和#ifndef
- (尚022)Vue案例_初始化显示(十分详细!!!)