GNU Make: Warnung: alte Befehle für Ziel 'xxx' ignorieren

9

Könnten Sie mir bitte helfen zu verstehen, wie GNU Make (Version 3.81) einfaches Makefile verarbeitet? Hier ist die Datei:

%Vor%

Jetzt führe ich den Befehl

aus %Vor%

um "e" Ziel zu erstellen. Die Ausgabe von Make sieht folgendermaßen aus:

%Vor%

Ссылка gibt die nächste Erklärung:

  

'Warnung: überschreiben Rezept für Ziel' xxx ''

     

'Warnung: Altes Rezept für Ziel' xxx 'ignorieren

     

Mit GNU make kann pro Ziel nur ein Rezept angegeben werden (mit Ausnahme von Doppelpunkt-Regeln). Wenn Sie ein Rezept für ein Ziel angeben, für das bereits ein Ziel definiert wurde, wird diese Warnung ausgegeben und das zweite Rezept überschreibt das erste .

Aber aus der Ausgabe können wir sehen, dass Befehle für Build 'a' Ziel auch ausgeführt werden. Ich dachte, dass gemäß der Beschreibung auf der Seite "Error-Messages", während der Verarbeitung dieses Makefiles und dem Versuch, "e" target (make e) zu erstellen, zuerst entscheidet, dass 'e' von 'a' abhängt und überschreibt dies dann zu 'e' hängt von 'f' ab. Und die Ausgabe sollte wie folgt aussehen:

%Vor%

Aber es sieht so aus, als ob man sich immer noch daran erinnert, dass 'e' von 'a' abhängt und das Rezept überhaupt nicht überschreibt.

Bitte helfen Sie mir, dieses Verhalten zu verstehen. Warum werden Befehle zum Erstellen eines 'a' Ziels auch nach dem Überschreiben von Rezepten ausgeführt?

    
bav 02.03.2014, 11:44
quelle

1 Antwort

8

Die Abhängigkeiten unterscheiden sich von den Befehlen. Die Abhängigkeit von a wird nicht vergessen, aber die Befehle sind.

    
tripleee 02.03.2014, 11:52
quelle

Tags und Links