android.mk编译动态库,安卓之Android.mk多文件以及动态库编译

本文详细介绍了如何使用Android.mk编译动态库和静态库,包括多文件编译的两种方法,以及如何生成动态库和静态库。通过具体的Android.mk配置示例,展示了编译不同目标文件的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值