makefile源文件收集
来源:互联网 发布:stc15w204s数据手册 编辑:程序博客网 时间:2024/05/18 00:07
得到指定路径下源文件名称集合
依次循环取得各目录下的所有源文件,在各目录下取源文件时过滤不支持的源文件格式,
得到源文件集合(带路径)
SOURCES := $(foreach x,${SRC_DIR},\ $(wildcard \ $(addprefix ${x}/*,${SFIX}) ) )
例:OS = ./plus --------------------------------- .c文件所在目录OS_C := $(foreach x,${OS},\ ----------------得到该目录下所有的 .c 文件 $(wildcard \ $(addprefix ${x}/*,.c) ) )
解释以下makefile中的函数:
1、foreach:
foreach是用来做循环用的,类似于for 语句,语法是:$(foreach ,, )
意思:把参数中的单词逐一取出放到参数所指定的变量中,然后再执行所包含的表达式。每一次会返回一个字符串,循环过程中,的所返回的每个字符串会以空格分隔,最后当整个循环结束时,所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。所以,最好是一个变量名,可以是一个表达式,而中一般会使用这个参数来依次枚举中的单词。
例:
names := a b c dfiles := $(foreach n,$(names),$(n).o)
$(name)
中的单词会被挨个取出,并存到变量“n”
中,“$(n).o”
每次根据“$(n)”
计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以,$(files)
的值是“a.o b.o c.o d.o”
。
2、wildcard:
使用wildcard得到指定目录下所有的C语言源程序文件名的方法,不用手工一个一个指定需要编译的.c文件了,方法如下:
SRC = $(wildcard *.c)
等于指定编译当前目录下所有.c文件,如果还有子目录,比如子目录为inc,则再增加一个wildcard函数:
SRC = $(wildcard *.c) $(wildcard inc/*.c)
也可以指定汇编源程序:
ASRC = $(wildcard *.S)
3、addprefix:
功能:$(addprefix , )
,加前缀函数,把前缀加到中的每个单词前。
返回:返回加过前缀的文件名序列。
例:$(addprefix src/,foo bar)返回值是“src/foo src/bar”
。
0 0
- makefile源文件收集
- Makefile 收集
- Linux多源文件Makefile模版
- makefile命令收集
- 多源文件的linux驱动Makefile编写
- 简单的、智能搜索源文件的 Makefile
- makefile 获取指定目录下源文件名称
- 如何为多目录源文件建立makefile
- makefile 获取指定目录下源文件名称
- makefile 获取指定目录下源文件名称
- Makefile为源文件提供宏定义
- Makefile遍历所有头文件以及源文件
- Makefile遍历所有头文件以及源文件
- 利用makefile文件编译c++源文件
- Makefile遍历所有头文件以及源文件
- makefile处理源文件对头文件的依赖
- Makefile,自动搜索源文件并编译
- 一点一点学写Makefile(6)-遍历当前目录源文件及其子目录下源文件
- 记录 onethink 模板找不到的问题
- MEAN全堆栈javascript开发框架
- 算法训练 删除数组零元素
- C++编程学习的优秀网站52个
- Swift几种简单的Web数据通讯方式
- makefile源文件收集
- *POJ 3177 Redundant Paths**
- c++基础小知识归纳总结
- 非阻塞connect编写方法介绍
- 桶排序和基数排序(熟练掌握代码中结构体的使用trick)
- 【Tools.Redis】配置
- How to setup multiple data sources with Spring and JPA
- 网购工具软件chrome扩展插件大推荐
- TCP/UDP