Wofür steht "alles" in einem Makefile?
Ich habe einige tutorials über Makefiles aber für mich ist es immer noch unklar, was das Ziel "all" steht und was es tut.
Irgendwelche Ideen?
InformationsquelleAutor der Frage Chris Smullian | 2010-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen build Makefile versteht, besteht aus einer Menge von Zielen. Zum Beispiel, um ein Projekt erstellen, müssen Sie möglicherweise
Wenn Sie implementiert diesen workflow mit makefile, könnte man jedes der Ziele getrennt. Zum Beispiel, wenn Sie schrieb
wäre es nur bauen, dass die Datei, wenn nötig.
Den Namen
all
ist nicht behoben. Es ist nur eine konventionelle Bezeichnung;all
Ziel bezeichnet, dass wenn Sie es aufrufen, stellen Sie bauen alle was benötigt wird, um eine vollständige build -. Dies ist in der Regel ein dummy-Ziel, das erstellt keine Dateien, sondern hängt lediglich mit den anderen Dateien. Für das Beispiel oben, Gebäude alle notwendig ist der Aufbau von ausführbaren Dateien, die andere Dateien gezogen als Abhängigkeiten. Also im makefile sieht es wie folgt aus:all
Ziel ist in der Regel der erste im makefile, wenn man da nur schreibenmake
in die Befehlszeile ohne Angabe des Ziels baut das erste Ziel. Und Sie erwarten, dass esall
.all
ist in der Regel auch eine.PHONY
Ziel. Erfahren Sie mehr hier.InformationsquelleAutor der Antwort Pavel Shved
Handbuch für GNU Make gibt eine klare definition für
all
in seiner Liste der standard-Ziele.Wenn der Autor des Makefiles wird folgenden Konvention, dass dann die Ziel -
all
sollte:make
sollte das gleiche tun wiemake all
.Erreichen 1
all
ist in der Regel definiert als eine.PHONY
Ziel, das hängt von der ausführbaren Datei(en), die das gesamte Programm:Erreichen 2
all
sollte entweder das erste Ziel definiert in der Datei oder zugewiesen werden als Standard-Ziel:InformationsquelleAutor der Antwort PeterSW
Nicht sicher, es steht für etwas besonderes. Es ist nur eine Konvention, die Sie liefern, 'all' - Regel, und in der Regel ist es verwendet, um eine Liste der sub-Ziele benötigt, um den Bau des gesamten Projekts, daher der name 'alle'. Das einzige, was das Besondere daran ist, dass öfter mal Leute setzen es als das erste Ziel in dem makefile, was bedeutet, dass nur die Eingabe von 'make' allein wird das gleiche tun, wie 'alle'.
InformationsquelleAutor der Antwort JustJeff
Das Ziel "all" ist ein Beispiel für eine dummy-Ziel - es gibt nichts auf der Festplatte namens "alle". Dies bedeutet, dass, wenn Sie tun ein "make all", stellen Sie immer denkt, dass es braucht, um es zu bauen, und so führt Sie alle Befehle für das Ziel. Diese Befehle werden in der Regel diejenigen, die bauen alle end-Produkte, die das makefile kennt, aber es konnte nichts tun.
Andere Beispiele von dummy-Ziele "clean" und "installieren", und Sie arbeiten in der gleichen Weise.
Wenn Sie haven ' T Lesen Sie es doch, sollten Sie das Lesen GNU Make Handbuch, das ist auch ein Super tutorial.
InformationsquelleAutor der Antwort