Makefile 自定义后缀
Make 可以自动创建 a.o 文件,在对应的 .c 文件上使用 cc-c。这些规则内置在
make 中,您可以利用这个优势来缩短 Makefile。如果您仅在当前目标所依赖的 Makefile 的依赖行中指定 .h 文件,
make 将知道相应的 .cfile 已经是必需的。您不必包含编译器的命令。
这进一步减少了 Makefile,如下所示-
OBJECTS = main.o hello.o factorial.o
hello: $(OBJECTS)
cc $(OBJECTS)-o hello
hellp.o: functions.h
main.o: functions.h
factorial.o: functions.h
Make 使用名为
.SUFFIXES 的特殊目标来允许您定义自己的后缀。例如,参考下面给出的依赖行-
它通知
make 您将使用这些特殊后缀来制定自己的规则。
类似于
make 已经知道如何从
.c 文件制作
.o 文件,您可以在下面定义规则方式-
.foo.bar:
tr '[A-Z][a-z]' '[N-Z][A-M][n-z][a-m]' <
.foo.bar:
tr '[A-Z][a-z]' '[N-Z][A-M][n-z][a-m]' < $< > $@
.c.o:
$(CC) $(CFLAGS)-c $<
lt; > $@
.c.o:
$(CC) $(CFLAGS)-c
.foo.bar:
tr '[A-Z][a-z]' '[N-Z][A-M][n-z][a-m]' < $< > $@
.c.o:
$(CC) $(CFLAGS)-c $<
lt;
第一条规则允许您从
.foo 文件创建一个
.bar 文件。它基本上打乱了文件。第二条规则是
make 用于从
.c 文件创建
.o 文件的默认规则。