$<之间的区别是什么?和makefile中的$ ^?

时间:2013-11-12 10:11:45

标签: linux makefile

makefile中隐式变量$<$^之间有什么区别?

例如:

$(LIBS): $(LIB_OBJS)
        $(CC) $(CFLAG) -shared $< -o $@

$(LIBS): $(LIB_OBJS)
        $(CC) $(CFLAG) -shared $^ -o $@

似乎结果是一样的。就我而言,我让$(LIBS)和$(LIB_OBJS)每个只有一个文件。

1 个答案:

答案 0 :(得分:5)

引用GNU Make“Automatic Variables”页面:

$<

第一个先决条件的名称。 [...]

$^

所有先决条件的名称,它们之间有空格。 [...]

所以在你的情况下,只有一个先决条件没有区别。