隐式Makefile目标

时间:2011-06-06 13:05:04

标签: makefile

http://www.cprogramming.com/tutorial/makefiles_continued.html解释隐含目标:

  

有一些行为几乎无处不在:例如,您可能有一些.c文件的集合,您可能希望执行相同的命令。理想情况下,文件的名称将是目标;使用隐式目标“.c”,您可以为与.c文件名称相对应的任何目标指定执行的命令(减去.c扩展名)。

但是,当我尝试它时,隐式目标就会被忽略。我的测试makefile如下:

Default: Foo.bar
    echo "In default."

.bar:
    echo "In .bar."

make: *** No rule to make target `Foo.bar', needed by `Default'.  Stop.

我错过了什么?

1 个答案:

答案 0 :(得分:3)

尝试:

default: foo.bar
    echo "In default."

%.bar:
    echo "In .bar."

您可能会询问旧式后缀规则 - 例如此规则:

.c.o:
    cc -c $<

告诉make如何从.c源构建.o文件。带有'%'的表单被称为模式规则,更“现代”。我建议你阅读GNU Make manual,这些内容非常丰富,易于阅读。