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- und nicht definierte 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.

Wo Makros definiert werden sollen

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.

Rangfolge in 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:

  1. Ein Makro, das in der Befehlszeile definiert ist

  2. Ein Makro, das in einer Makefile definiert ist oder eine Datei enthält

  3. Ein geerbtes Umgebungsvariablenmakro

  4. Ein Makro, das in der Tools.ini Datei definiert ist

  5. Ein vordefiniertes Makro, z. B CC . und AS

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.

Siehe auch

Makros und NMAKE