我正在使用makefile开发一个项目。一些制作规则具有以下格式:
a.o b.o c.o : %.o : %.c
gcc -c $< -o $@
这条规则的含义是什么?我无法在官方手册中找到解释,但我想它仅用于在列为目标的* .o文件上应用模式匹配。这是对的吗?
答案 0 :(得分:0)
引自GNU Make,
静态模式规则是指定多个目标的规则 根据目标为每个目标构造先决条件名称 名称。它们比具有多个目标的普通规则更通用 因为目标不必具有相同的先决条件。其 先决条件必须类似,但不一定相同。
静态模式规则的语法:
targets : target-pattern: prereq-patterns …
recipe
…
模式规则在目标中以%表示。它匹配任何目标,.o
a.o
,b.o
和c.o
。
此处'$<’
是保存先决条件名称的自动变量,'$@’
是保存目标名称的自动变量。
a.o b.o c.o : %.o : %.c
gcc -c $< -o $@