Befehle in einem Makefile

Ein Beschreibungsblock oder eine Ableitungsregel gibt einen Befehlsblock an, der ausgeführt werden soll, wenn die Abhängigkeit veraltet ist. NMAKE zeigt jeden Befehl vor der Ausführung an, es sei denn/S, , .SILENT, oder !CMDSWITCHES@ wird verwendet. NMAKE sucht nach einer übereinstimmenden Ableitungsregel, wenn auf einen Beschreibungsblock kein Befehlsblock folgt.

Ein Befehlsblock enthält einen oder mehrere Befehle, die jeweils in einer eigenen Zeile enthalten sind. Zwischen Abhängigkeit oder Regel und Befehlsblock kann keine leere Zeile angezeigt werden. Eine Zeile, die nur Leerzeichen oder Tabstopps enthält, kann jedoch angezeigt werden. Diese Zeile wird als NULL-Befehl interpretiert, und es tritt kein Fehler auf. Leere Zeilen sind zwischen Befehlszeilen zulässig.

Eine Befehlszeile beginnt mit einem oder mehreren Leerzeichen oder Registerkarten. Ein umgekehrter Schrägstrich (\) gefolgt von einem Zeilenumbruchzeichen wird als Leerzeichen im Befehl interpretiert. Verwenden Sie einen umgekehrten Schrägstrich am Ende einer Zeile, um einen Befehl in der nächsten Zeile fortzusetzen. NMAKE interpretiert den umgekehrten Schrägstrich buchstäblich, wenn ein anderes Zeichen, einschließlich eines Leerzeichens oder tabstopps, dem umgekehrten Schrägstrich folgt.

Ein Befehl vor einem Semikolon (;) kann in einer Abhängigkeitszeile oder -ableitungsregel angezeigt werden, unabhängig davon, ob ein Befehlsblock folgt oder nicht:

project.obj : project.c project.h ; cl /c project.c

Befehlsmodifizierer

Sie können einen oder mehrere Befehlsmodifizierer vor einem Befehl angeben, optional durch Leerzeichen oder Registerkarten getrennt. Wie bei Befehlen müssen Modifizierer eingezogen werden.

Modifizierer Zweck
@Befehl Verhindert die Anzeige des Befehls. Die Anzeige durch Befehle wird nicht unterdrückt. Standardmäßig echot NMAKE alle ausgeführten Befehle. Wird /S verwendet, um die Anzeige für die gesamte Makefile zu unterdrücken; verwenden, .SILENT um die Anzeige für einen Teil der Makefile zu unterdrücken.
-Befehl [Zahl] Deaktiviert die Fehlerüberprüfung auf Befehl. Standardmäßig hält NMAKE an, wenn ein Befehl einen Nichtzero-Ausgangscode zurückgibt. Wenn "-number" verwendet wird, stoppt NMAKE, wenn der Ausgangscode die Zahl überschreitet. Leerzeichen oder Registerkarten können nicht zwischen Strich und Zahl angezeigt werden. Mindestens ein Leerzeichen oder eine Registerkarte muss zwischen Zahl und Befehl angezeigt werden. Verwenden Sie diese Option, um die Fehlerüberprüfung für die gesamte Makefile-Datei zu deaktivieren. Verwenden Sie /I diese Option .IGNORE , um die Fehlerüberprüfung für einen Teil der Makefile zu deaktivieren.
!Befehl Führt den Befehl für jede abhängige Datei aus, wenn der Befehl$** (alle abhängigen Dateien in der Abhängigkeit) oder $? (alle abhängigen Dateien in der Abhängigkeit mit einem späteren Zeitstempel als dem Ziel) verwendet wird.

Syntax für Dateinamenteile

Die Syntax von Dateinamenteilen in Befehlen stellt Komponenten des ersten abhängigen Dateinamens dar (dies kann eine implizierte abhängige Datei sein). Filename components are the file's drive, path, base name, and extension as specified, not as it exists on disk. Wird %s verwendet, um den vollständigen Dateinamen darzustellen. Verwenden Sie %|[Teile]F (ein vertikales Balkenzeichen folgt dem Prozentsymbol), um Teile des Dateinamens darzustellen, wobei Teile null oder mehr der folgenden Buchstaben in beliebiger Reihenfolge sein können.

Schreiben Beschreibung
Kein Buchstabe Vollständiger Name (identisch mit %s)
d Laufwerk
p Pfad
f Dateibasisname
e Dateierweiterung

Beispiel: Wenn der Dateiname lautet c:\prog.exe:

  • %s wird zu c:\prog.exe

  • %|F wird zu c:\prog.exe

  • %|dF wird zu c

  • %|pF wird zu c:\

  • %|fF wird zu prog

  • %|eF wird zu exe

Worüber möchten Sie mehr erfahren?

Inlinedateien in einer Makefile

Siehe auch

NMAKE Reference (NMAKE-Referenz)