博客搬家,原地址:https://langzi989.github.io/2017/05/25/makefile常用相关函数/
makefile中函数的用法与变量类似,变量的用法是在变量前面加上 , 函 数 的 用 法 一 样 , 也 是 使 用 ,函数的用法一样,也是使用 ,函数的用法一样,也是使用开头,$之后加一个括号,括号中的第一个参数是函数名,后面紧跟此函数需要的参数,用逗号分隔。下面介绍几个常用的函数。
wildcard函数
- 参数: 一个正则表达式
wildcard的中文意思是通配符,它的功能类似于正则表达式,用于展开一列所有符合其参数描述的文件名,文件之间用空格分割。
实例:
SOURCE=$(wildcard *.cpp)
此时SOURCE的值为所有的以.cpp为后缀的文件集合,以空格隔开。
patsubst函数
其功能是一个匹配替换的函数(pattern substitute)。
- 参数:第一个是需要匹配的样式,第二个是表示用什么替换它,第三个被处理的以空格隔开的字符串。
实例:
TARGET = $(patsubst *.cpp, *.o, $(SOURCE))
TARGET表示与SOURCE中同名的目标文件.
@ , @, @,<, $^
上述几个变量的含义:
- $@ 表示目标的文件名
- $< 表示依赖中的第一个文件名
- $^ 表示依赖中所有的文件名
实例:
all: library.cpp main.cpp
其中$@标识all, < 表 示 l i b r a r y . c p p , <表示library.cpp , <表示library.cpp,^表示library.cpp main.cpp