Nur der erste Befehl von Makefile wird ausgeführt

7

Ich habe folgendes Makefile:

%Vor%

Problem ist, dass nur ein Befehl dieser Datei ausgeführt wird, also wenn ich den nächsten & lt; Ich muss den vorherigen Befehl löschen oder kommentieren. Was ist mit diesem Makefile falsch?

    
unresolved_external 11.10.2012, 10:47
quelle

2 Antworten

17

Lassen Sie standardmäßig die erste Regel ausführen, die Sie angegeben haben.

Sie möchten eine Regel erstellen, die alle von Ihnen bereitgestellten Regeln ausführt

%Vor%

und platziere es am Anfang deines Makefiles oder rufe es mit make all

auf     
tomahh 11.10.2012, 10:50
quelle
4

Dies ist beabsichtigt. Sie können make angeben, welche Ziele erstellt werden sollen:

%Vor%

erstellt diese beiden Ziele. Alternativ können Sie, wenn Sie make standardmäßig alle (oder einige) Ziele erstellen möchten, eine Regel am Anfang des Makefiles angeben , die besagt:

%Vor%

Nun wird make all (oder nur make ) alle abhängigen Ziele erstellen. Es ist auch eine gute Übung, all als falsches Ziel zu deklarieren, um make , dass es keiner tatsächlich existierenden Datei entspricht. Tun Sie dies, indem Sie .PHONY: all in das Makefile einfügen.

Eine letzte Bemerkung, der Name all ist beliebig. Sie könnten hier einen anderen Namen verwenden, aber all ist konventionell. Der wichtige Teil ist, dass es die erste Regel in Ihrem Makefile ist, wenn Sie möchten, dass sie ausgeführt wird, wenn Sie make ohne explizite Ziele aufrufen.

    
Konrad Rudolph 11.10.2012 10:51
quelle

Tags und Links