安卓之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就够 ...
随机推荐
- win7彻底卸载VS2015
C盘越来越臃肿,VS2013.VS2015.VS2017以及VS2019都安装的情况下,C盘没有空间了. 系统:Win7 卸载办法: 管理员方式进cmd,执行vs_professional.exe / ...
- 小程序的openid和公众号的openid是否一致
早期的产品只用了公众号,没有注册开放平台(没有unionid).然后现在需要上线小程序,这种情况下,企业是同一个企业的,但是公众号的openid和小程序的openid是否一致呢? 我来回答你这个问题: ...
- MySQL/MariaDB数据库的主主复制
MySQL/MariaDB数据库的主主复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主主复制概述 1>.什么是主主复制 所谓的主主复制,说白了就是两台节点互为 ...
- ms08067 分析与利用
分析 漏洞位于 NetpwPathCanonicalize 函数里面,这个函数的作用在于处理路径中的 ..\ 和 .\ 信息.该函数声明如下: DWORD NetpwPathCanonicalize( ...
- python打造seo必备工具-自动查询排名
因为工作需要,利用业余时间开发的,可以查询百度排名+360排名工具,附上代码. #360搜索排名查询 # -*- coding=utf-8 -*- import requests from lxml ...
- Python应用-完成简单邮件发送功能
项目中有时候需要用脚本来自动发送邮件,而用Python来发送邮件十分的方便,代码如下: #!/usr/bin/python #coding:utf-8 import smtplib from emai ...
- wordpress调用指定post type文章怎么操作
我们有时会用wordpress创建好几种post type文章,比如默认的post文章和product文章,如果我们要在每个页面的底部调用post type类型为post最新文章要如何操作呢?那我们就 ...
- 【Selenium-WebDriver实战篇】Eclipse上的maven使用JsonObject时,添加依赖后无法自动下载相应的jar包
==================================================================================================== ...
- 如何使用powerdesigner导出sql脚本
使用power designer可以很方便的对数据库设计进行管理,并且能够更方便的查看表与表之间的关系.同时,还可以对设计好的数据库直接导出创建脚本,根据不同的数据库实例导出对应的创建脚本,然后根据脚 ...
- SpringCloud过滤filter
目录 配置文件 application.yml eureka: client: service-url: defaultZone: http://localhost:8001/eureka serve ...