Definieren eines NMAKE-Makros
Ein NMAKE-Makro wird mithilfe dieser Syntax definiert:
macro_name=string
Bei der macro_name handelt es sich um eine Kombination aus Buchstaben, Ziffern und Unterstrichen (_
) bis zu 1.024 Zeichen lang. Die macro_name kann ein aufgerufenes Makro enthalten. Wenn macro_name vollständig aus einem aufgerufenen Makro besteht, kann das aufgerufene Makro nicht null oder nicht definiert sein.
Die Zeichenfolge kann eine beliebige Sequenz von Null oder mehr Zeichen sein. Eine NULL-Zeichenfolge enthält Nullzeichen oder nur Leerzeichen oder Tabstopps. Die Zeichenfolge kann einen Makroaufruf enthalten.
Sonderzeichen in Makros
Ein Nummernzeichen (#
) nach einer Definition gibt einen Kommentar an. Wenn Sie ein Literalzeichen in einem Makro angeben möchten, verwenden Sie ein Caretzeichen (^
), um es wie in ^#
.
Ein Dollarzeichen ($
) gibt einen Makroaufruf an. Verwenden Sie zum $$
Angeben eines Literals $
.
Um eine Definition auf eine neue Zeile zu erweitern, beenden Sie die Zeile mit einem umgekehrten Schrägstrich (\
). Wenn das Makro aufgerufen wird, wird der umgekehrte Schrägstrich und das folgende Zeilenumbruchzeichen durch ein Leerzeichen ersetzt. Um einen literalen umgekehrten Schrägstrich am Ende der Zeile anzugeben, stellen Sie ihm ein Caret-Escapezeichen (^
) voran, oder folgen Sie ihm mit einem Kommentarbezeichner (#
).
Wenn Sie ein literales Zeilenumbruchzeichen angeben möchten, beenden Sie die Zeile mit einem Caretzeichen (^
) wie in diesem Beispiel:
CMDS = cls^
dir
NULL-Makros und undefinierte Makros
Sowohl NULL- als auch nicht definierte Makros werden auf NULL-Zeichenfolgen erweitert, aber ein Makro, das als NULL-Zeichenfolge definiert ist, wird in Präverarbeitungsausdrücken als definiert betrachtet. Wenn Sie ein Makro als NULL-Zeichenfolge definieren möchten, geben Sie keine Zeichen außer Leerzeichen oder Tabstopps nach dem Gleichheitszeichen () in einer Befehlszeile oder Befehlsdatei an, und schließen Sie die NULL-Zeichenfolge oder Definition in doppelte Anführungszeichen (=
" "
) ein. Um ein Makro rückgängig zu machen, verwenden Sie !UNDEF
. Weitere Informationen finden Sie unter Makefile-Präverarbeitungsdirektiven.
Definieren von Makros
Definieren Sie Makros in einer Befehlszeile, Befehlsdatei, Makefile oder der Tools.ini
Datei.
In einer Makefile oder datei Tools.ini
muss jede Makrodefinition in einer separaten Zeile angezeigt werden und kann nicht mit einem Leerzeichen oder tabstopp beginnen. Leerzeichen oder Tabstopps um das Gleichheitszeichen werden ignoriert. Alle Zeichenfolgenzeichen sind Literal, einschließlich umgebender Anführungszeichen und eingebetteter Leerzeichen.
In einer Befehlszeile oder Befehlsdatei trennen Leerzeichen und Tabstopps Argumente und können das Gleichheitszeichen nicht umgeben. Wenn die Zeichenfolge eingebettete Leerzeichen oder Tabstopps enthält, schließen Sie entweder die Zeichenfolge selbst oder das gesamte Makro in doppelte Anführungszeichen (" "
) ein.
Vorrang bei Makrodefinitionen
Wenn ein Makro mehrere Definitionen aufweist, verwendet NMAKE die Definition der höchsten Rangfolge. Die folgende Liste zeigt die Reihenfolge der Rangfolge, von der höchsten zur niedrigsten:
Ein Makro, das in der Befehlszeile definiert ist
Ein Makro, das in einer Makefile definiert ist oder eine Datei enthält
Ein geerbtes Umgebungsvariablenmakro
Ein Makro, das in der
Tools.ini
Datei definiert ist
Wird verwendet /E
, um zu bewirken, dass Makros, die von Umgebungsvariablen geerbt wurden, Makefile-Makros mit demselben Namen außer Kraft setzen. Wird !UNDEF
verwendet, um eine Befehlszeile außer Kraft zu setzen.