在 Makefile 中定义自定义后缀规则

在 Makefile 中定义自定义后缀规则


Make可以自动创建ao文件,在对应的.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的特殊目标来允许您定义自己的后缀。例如,参考下面给出的依赖线 –

.SUFFIXES: .foo .bar

它通知make您将使用这些特殊后缀来制定自己的规则。

类似于make已经知道如何.c文件制作.o文件,您可以通过以下方式定义规则 –

.foo.bar:
   tr '[A-Z][a-z]' '[N-Z][A-M][n-z][a-m]' < $< > $@
.c.o:
   $(CC) $(CFLAGS) -c $<

第一条规则允许您.foo文件创建.bar文件。它基本上打乱了文件。第二条规则是make用来.c文件创建.o文件的默认规则

觉得文章有用?

点个广告表达一下你的爱意吧 !😁