Makefile规则没有依赖表达式

时间:2010-04-18 11:40:49

标签: makefile

我在维基百科上阅读了关于“制作”的德文文章,发现了以下两行:

.c.o:
     $(CC) $(CFLAGS) -c -o $@ $<

为什么依赖项表达式被省略,为什么目标使用双重文件扩展名?

2 个答案:

答案 0 :(得分:5)

这就是所谓的“后缀规则”,用于制作具有第一个后缀的源的第二个后缀的目标,只要知道后缀即可。有关更详细的说明,请参阅Suffix Rules in the make manual

答案 1 :(得分:5)

这实际上定义了一个suffix rule ...它定义了如何从以“.c”结尾的相应文件构建以“.o”结尾的文件,这告诉make推断“ filename .c“,如果存在,则对任何此类文件名的” filename .o“依赖,并且” filename .o“可以使用提供的规则从其* .c依赖项构建文件。

但是,我应该指出,这一行是完全没必要的,实际上并不是应该放在Makefile中的东西,因为Make已经能够推断出那种类型的依赖。您可能对我的Makefile tutorial感兴趣,因为它非常详细地介绍了Make能够推断的所有内容。