我在维基百科上阅读了关于“制作”的德文文章,发现了以下两行:
.c.o:
$(CC) $(CFLAGS) -c -o $@ $<
为什么依赖项表达式被省略,为什么目标使用双重文件扩展名?
答案 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能够推断的所有内容。