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?