终极Android.mk模板,遍历头文件和源文件目录
结构简洁、条理清晰的代码结构,是一个项目便于管理,代码模块化的前提。
梳理代码结构发现代码所使用的android.mk各种各样,混乱不堪,遂整理出一个基础模板,供大家使用。其中包含了常见的一些功能,还有头文件路径遍历和源文件指定目录遍历等。
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
PROJECT_PATH = $(LOCAL_PATH)/..LOCAL_MODULE := libmodule
LOCAL_LDFLAGS += -shared#添加模块使用宏定义
LOCAL_CFLAGS += -DMODULE_FLAG#添加需要包含的头文件路径,会依次遍历向下所有目录,
MY_HEADER_PATH += $(PROJECT_PATH)#添加需要包含的头文件路径,不会向下遍历,最后一个不要加\号
LOCAL_C_INCLUDES += $(PROJECT_PATH)../includeLOCAL_C_INCLUDES += $(shell find $(MY_HEADER_PATH) -type d)
$(warning "$(LOCAL_MODULE): LOCAL_C_INCLUDES =$(LOCAL_C_INCLUDES)") # 扫描目录下的所有源文件,会向下依次遍历
MY_FILES_PATH := $(PROJECT_PATH)
# 添加指定C/CPP文件,只添加某个
LOCAL_SRC_FILES += $(LOCAL_PATH)/test.cMY_FILES_SUFFIX := %.cpp %.c %.cc
My_All_Files := $(foreach src_path,$(MY_FILES_PATH), $(shell find "$(src_path)" -type f) )
My_All_Files := $(My_All_Files:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)
MY_SRC_LIST := $(filter $(MY_FILES_SUFFIX),$(My_All_Files))
MY_SRC_LIST := $(MY_SRC_LIST:$(LOCAL_PATH)/%=%)
LOCAL_SRC_FILES += $(MY_SRC_LIST)
$(warning "$(LOCAL_MODULE): LOCAL_SRC_FILES =$(LOCAL_SRC_FILES)") #添加需要链接的静态库
LOCAL_STATIC_LIBRARIES := #添加需要链接的动态库
LOCAL_SHARED_LIBRARIES :=
$(warning "$(LOCAL_MODULE): LOCAL_SHARED_LIBRARIES=$(LOCAL_SHARED_LIBRARIES)") #添加需要链接的系统库,如ndk编译,需要链接的log/android等
LOCAL_LDLIBS += -llog -landroid -lc#指定编译目标,这边编译动态库
include $(BUILD_SHARED_LIBRARY)
终极Android.mk模板,遍历头文件和源文件目录相关推荐
- C++类模板怎么写在单独的头文件和源文件中
今天打算研究研究之前我们领导写的一段关于类模板的代码,后来发现有点坑需要记录一下.以往关于C++模板基本上都是写一个demo,然后运行通过,没有软件工程的样子,所以今天我按以往的惯例写了一个类模板,打 ...
- android开发模板web,Android开发实践:Android.mk模板
关于Android NDK开发的文章已经比较多了,我的博客中也分享了很多NDK开发相关经验和技巧,今天简单写了一个 Android.mk 的示例模板,供初学者参考. 本模板主要给大家示例 Androi ...
- 乐鑫ESP32-C3开发(四)添加头文件和源文件
ESP32-C3 1. 工程分析 2. 源码CMakeList.txt 3. 添加头文件和源文件 4. 其他 1. 工程分析 组织工程目录,代码要解构,模块化,可复用,避免重复劳动,遵循一定的命名规则 ...
- C++ 头文件和源文件
from:https://www.cnblogs.com/fenghuan/p/4794514.html C++中头文件(.h)和源文件(.cpp)都应该写些什么 头文件(.h): 写类的声明(包括类 ...
- C++ 笔记(25)— 理解 C++ 中的头文件和源文件的作用
1. C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件: .cpp 文件,被称作 C++ 源文件,里面放的都是 C++ 的源代码 .h 文件,被称作 C++ 头文件,里面放的也是 C++ ...
- c 中头文件和源文件的区别是什么
区别:头文件是".h"文件,提供接口:源文件是".cpp"文件,提供实现.编译器规定源文件必须包含函数入口,即main函数:而头文件不得包含函数入口,头文件不可 ...
- C++头文件和源文件,编译过程
源文件如何根据#include来关联头文件 1.系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找. #include <xxx.h> 2.用户自定义的文件用双引号括起来, ...
- C++头文件和源文件的编译过程
源文件如何根据#include来关联头文件 1.系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找. #include <xxx.h> 2.用户自定义的文件用双引号括起来,编 ...
- C语言头文件和源文件差异,#include两种引用方式差异
一些初学c语言的人,不知道头文件(*.h文件)原来还可以自己写的.只知道调用系统库函数时,要使用#include语句将某些头文件包含进去.其实,头文件跟.c文件一样,是可以自己写的.头文件是一种文本文 ...
最新文章
- 学习事务,视图和索引
- python之turtle库(画图)
- linux 高性能读书笔记之通用socket地址
- AAAI2021 大运动“视频超分辨”中的对偶子网与多阶通信上采样方案
- linux查看 mysql 登陆 失败_Linux安装完mysql后提示错误无法登陆mysql怎么办?
- Netty : java.io.IOException: Connection reset by peer
- Bailian4077 出栈序列统计【卡特兰数】(vijos P1122)
- Ubuntu之sshfs远程目录挂载到本地
- TMG自动发现功能配置正常,但客户端却检测不到TMG服务器。
- fluent 对电机油冷分析_如何避免发电机过热引起的能源损耗?
- html生成pdf java_java 中实现HTML 生成pdf
- 惠普HP Photosmart C4200 打印机驱动
- 车辆违章查询接口文档
- 直播美颜SDK从技术层面如何自行实现
- 专转本-数学考试大纲
- 使用SDNN (space displacement neural network)进行多字体手写识别
- maven plugins飘红
- Java的图书商城项目如何添加商品到购物车
- 朋友找工作的奇葩规定
- AI Studio 课程