2016-07-26 17 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