【发布时间】:2009-05-29 06:23:10
【问题描述】:
谁能解释Makefile中$<和$@的含义?
【问题讨论】:
标签: makefile
谁能解释Makefile中$<和$@的含义?
【问题讨论】:
标签: makefile
$< 计算为 make 规则中的第一个“先决条件”,$@ 计算为 make 规则中的“目标”。
这是一个例子:
file.o : file.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
在这种情况下,$< 将替换为 file.c,$@ 将替换为 file.o。
这些在像这样的通用规则中更有用:
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
请参阅this manual 了解更多信息。
【讨论】:
$@ 是当前规则的目标。
$< 是当前规则的第一个先决条件(“源”)的名称。
例如:
.c.o:
$(CC) -c $(CFLAGS) -o $@ $<
这将扩展为类似以下的命令:
gcc -c -Wall -o foo.o foo.c
【讨论】:
$< 是 first 先决条件的名称。您可以点击其他自动变量($?、$^、$+、$|)答案中的链接,这将为您提供的不仅仅是第一个先决条件。