安卓之Android.mk多文件以及动态库编译
Posted 小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓之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 安装包优化使用 lib7zr.so 动态库处理压缩文件 ( 修改 7zr 交叉编译脚本 Android.mk | 交叉编译 lib7zr.so 动态库 )