(以下内容为“陈皓 跟我一起写Makefile(pdf重制版)”整理复制)
- 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。上节提到了书写规则如下:
如果我们想定义一系列比较类似的文件,就要用到通配符。
*.c 表示所有后缀为 c 的文件。一个需要我们注意的是,如果我 们的文件名中有通配符,如:* ,那么可以用转义字符 \ ,如 \* 来表示真实的 * 字符,而不是任意长 度的字符串。
eg. rm -f *.o
- objects = *.o --- 通配符同样可以用在变量中。
- objects : = $(wildcard *.o) ---- 列出一确定文件夹中的所有 .c 文件。让通配符在变量中展开,也就是让 objects 的值是所有 .o 的文件名的集合
- $(patsubst %.c,%.o,$(wildcard *.c))----列出上述所有c文件的.o文件
- objects := $(patsubst %.c,%.o,$(wildcard *.c))
foo : $(objects)<