2016-07-26 31 views
0

根据https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html关于makefile中自动变量的问题

我不明白$之间的区别吗?和$ ^。该文件说$?返回比目标更新的所有先决条件的名称,而$ ^返回所有先决条件。

但是,我试图用很多例子来测试它,它们都没有工作?任何人都可以提供一个例子吗?

另请参见:什么是仅限订单的先决条件?我不明白'仅限订单'的含义。这是从以下定义:

$ | : 所有仅限订单的先决条件的名称,它们之间有空格。

感谢

回答

0

如果你告诉我们,你的努力没有奏效的例子,我们可以更多的帮助。这里有一个简单的例子:

$ cat Makefile 
all: foo bar 
     @echo '$$? = $?' 
     @echo '$$^ = $^' 

$ touch foo; sleep 1; touch all; sleep 1; touch bar 

$ make 
$? = bar 
$^ = foo bar 

你可以找到在GNU上order-only prerequisites信息进行手动。

+0

谢谢!这完全证明了这种差异 – Thenewstockton