$<和$ @表示在Makefile中?

时间:2009-05-29 06:23:10

标签: makefile

有人可以在$<解释$@Makefile的含义吗?

2 个答案:

答案 0 :(得分:21)

$<计算制作规则中的第一个“先决条件”,$@计算制作规则中的“目标”。

以下是一个例子:

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

在这种情况下,$<将替换为file.c$@将替换为file.o

这些在通用规则中更有用:

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

有关详细信息,请参阅this manual

答案 1 :(得分:6)

$@是当前规则的目标。 $<是当前规则的第一个先决条件(“source”)的名称。

例如:

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

这将扩展为类似的命令:

gcc -c -Wall -o foo.o foo.c

另请参阅GNU make manual § 10.5.3, "Automatic Variables"