makefile中隐式变量$<
和$^
之间有什么区别?
例如:
$(LIBS): $(LIB_OBJS)
$(CC) $(CFLAG) -shared $< -o $@
和
$(LIBS): $(LIB_OBJS)
$(CC) $(CFLAG) -shared $^ -o $@
似乎结果是一样的。就我而言,我让$(LIBS)和$(LIB_OBJS)每个只有一个文件。
答案 0 :(得分:5)
引用GNU Make“Automatic Variables”页面:
$<
第一个先决条件的名称。 [...]
$^
所有先决条件的名称,它们之间有空格。 [...]
所以在你的情况下,只有一个先决条件没有区别。