makefile依赖列表中的冒号是什么意思?

时间:2017-06-13 03:16:26

标签: makefile pattern-matching

我正在使用makefile开发一个项目。一些制作规则具有以下格式:

a.o b.o c.o : %.o : %.c
    gcc -c $< -o $@

这条规则的含义是什么?我无法在官方手册中找到解释,但我想它仅用于在列为目标的* .o文件上应用模式匹配。这是对的吗?

1 个答案:

答案 0 :(得分:0)

引自GNU Make,

  

Static Pattern Rules

     

静态模式规则是指定多个目标的规则   根据目标为每个目标构造先决条件名称   名称。它们比具有多个目标的普通规则更通用   因为目标不必具有相同的先决条件。其   先决条件必须类似,但不一定相同。

静态模式规则的语法:

targets : target-pattern: prereq-patterns …
        recipe
        …

模式规则在目标中以%表示。它匹配任何目标,.o a.ob.oc.o

此处'$<’是保存先决条件名称的自动变量,'$@’是保存目标名称的自动变量。

a.o b.o c.o : %.o : %.c
    gcc -c $< -o $@