2016-07-26 12 views
0

Nach https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.htmlFragen über Automatische Variablen in Makefile

Ich verstehe nicht den Unterschied zwischen $? und $ ^. Das Dokument sagt $? Gibt die Namen aller Voraussetzungen zurück, die neuer als das Ziel sind, während $^alle Voraussetzungen zurückgibt.

Allerdings habe ich versucht, es mit vielen Beispielen zu testen und keiner von ihnen funktioniert? Kann mir jemand ein Beispiel geben?

Auch: Was sind nur Bestellvoraussetzungen? Ich verstehe nicht, was "nur Bestellung" bedeutet. Dies ergibt sich aus folgender Definition:

$ | : Die Namen aller Nur-Bestellung-Voraussetzungen mit Leerzeichen zwischen ihnen.

Dank

Antwort

0

Wenn Sie uns ein Beispiel zeigen, dass Sie versucht haben, das nicht funktioniert, können wir mehr Hilfe sein. Hier ist ein einfaches Beispiel:

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

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

$ make 
$? = bar 
$^ = foo bar 

Sie Informationen über order-only prerequisites in dem GNU machen Handbuch finden.

+0

Danke! Dies zeigt perfekt den Unterschied – Thenewstockton