2009-07-05 7 views
2

Was bedeutet $ + in einem GNU Makefile?
Bitte geben Sie mir auch ein gutes Nachschlagewerk zum Schreiben von Makefiles.

Antwort

6

Vom make manual:

$^         Die Namen aller Voraussetzungen, mit Leerzeichen zwischen ihnen. Für Voraussetzungen, die Archivmitglieder sind, wird nur das angegebene Mitglied verwendet (siehe Archive). Ein Ziel hat nur eine Voraussetzung für jede andere Datei, von der es abhängig ist, egal wie oft jede Datei als Voraussetzung aufgelistet ist. Wenn Sie eine Voraussetzung mehr als einmal für ein Ziel auflisten, enthält der Wert von $^nur eine Kopie des Namens. Diese Liste enthält keine der Bestellanforderungen ; Für diejenigen, die das `$ | Variable, unten.

$ +         Das ist wie `$ ^‘, aber Voraussetzungen mehr als einmal in der Reihenfolge, wie sie in der Make-Datei aufgeführt wurden dupliziert aufgeführt. Dies ist in erster Linie nützlich für die Verknüpfung von Befehlen, bei denen es sinnvoll ist, Bibliotheksdateinamen in einer bestimmten Reihenfolge zu wiederholen.

8

In beiden Fällen kann ich in diesem Fall nur RTFM ... oder RTFI sagen. Typ

an einer Eingabeaufforderung und alle Informationen, die Sie jemals wollen, werden Ihnen zur Hand sein.

Für $+ spezifisch: es bezieht sich auf die Namen aller Voraussetzungen der aktuellen Regel. Siehe zum Beispiel http://uw714doc.sco.com/cgi-bin/info2html?(make.info)Automatic&lang=en

+0

wie unhöflich! :) - nur Witze machen – Sev

+0

'info' reicht nicht für GNU make; zumindest in RHEL 6 bietet 'info gmake' das gleiche Referenzmaterial wie' man gmake', das besagt, dass das GNU-Referenzhandbuch weitere Informationen enthält. –