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

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

Make 可以自动创建一个.o文件,在相应的.c文件上使用cc -c。这些规则是 make 内置的,你可以利用这个优势来缩短你的Makefile。如果你在当前目标所依赖的Makefile的依赖行中只指出.h文件, make 会知道相应的.c文件已经是必需的。你不需要包括编译器的命令。

这就进一步减少了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 ,你将使用这些特殊的后缀来制定你自己的规则。

Similar to how make already knows how to make a .o file from a .c file, you can define rules in the following manner −

.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 文件的默认规则。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程