Definiowanie makra NMAKE

Makro NMAKE jest definiowane przy użyciu tej składni:

macro_name=string

Macro_name jest kombinacją liter, cyfr i podkreśleń (_) do 1024 znaków. Macro_name może zawierać wywoływane makro. Jeśli macro_name składa się całkowicie z wywoływanego makra, wywoływane makro nie może mieć wartości null ani nie jest zdefiniowane.

Ciąg może być dowolną sekwencją zero lub więcej znaków. Ciąg o wartości null zawiera zero znaków lub tylko spacje lub karty. Ciąg może zawierać wywołanie makra.

Znaki specjalne w makrach

Znak numeru (#) po definicji określa komentarz. Aby określić znak znaku literału w makrze, użyj karetki (^), aby ją uniknąć, tak jak w pliku ^#.

Znak dolara ($) określa wywołanie makra. Aby określić literał $, użyj polecenia $$.

Aby rozszerzyć definicję na nową linię, zakończ wiersz ukośnikiem odwrotnym (\). Po wywołaniu makra ukośnik odwrotny i następujący znak nowego wiersza jest zastępowany spacją. Aby określić ukośnik odwrotny literału na końcu wiersza, poprzedzić go znakiem ucieczki (^) lub postępować zgodnie z specyfikatorem komentarza (#).

Aby określić znak nowego wiersza literału, zakończ wiersz znakiem ucieczki karetki (^), jak w tym przykładzie:

CMDS = cls^
dir

Makra o wartości null i niezdefiniowane

Makra o wartości null i niezdefiniowane rozszerzają się na ciągi o wartości null, ale makro zdefiniowane jako ciąg null jest uznawane za zdefiniowane w wyrażeniach przetwarzania wstępnego. Aby zdefiniować makro jako ciąg o wartości null, określ brak znaków z wyjątkiem spacji lub tabulatorów po znaku równości (=) w wierszu polecenia lub pliku polecenia i ująć ciąg null lub definicję w podwójny cudzysłów (" "). Aby usunąć definicję makra, użyj polecenia !UNDEF. Aby uzyskać więcej informacji, zobacz Makefile preprocessing dyrektywy.

Gdzie definiować makra

Zdefiniuj makra w wierszu polecenia, pliku polecenia, pliku makefile lub Tools.ini pliku.

W pliku makefile lub Tools.ini pliku każda definicja makra musi być wyświetlana w osobnym wierszu i nie może zaczynać się od spacji lub karty. Spacje lub karty wokół znaku równości są ignorowane. Wszystkie znaki ciągu są literałami, w tym otaczającymi cudzysłowami i osadzonymi spacjami.

W wierszu polecenia lub pliku polecenia spacje i tabulatory rozdzielać argumenty i nie mogą otaczać znaku równości. Jeśli ciąg zawiera osadzone spacje lub karty, należy ująć sam ciąg lub całe makro w podwójnym cudzysłowie (" ").

Pierwszeństwo w definicjach makr

Jeśli makro ma wiele definicji, NMAKE używa definicji najwyższego pierwszeństwa. Na poniższej liście przedstawiono kolejność pierwszeństwa od najwyższego do najniższego:

  1. Makro zdefiniowane w wierszu polecenia

  2. Makro zdefiniowane w pliku make lub pliku dołączania

  3. Makro dziedziczonej zmiennej środowiskowej

  4. Makro zdefiniowane w Tools.ini pliku

  5. Wstępnie zdefiniowane makro, takie jak CC i AS

Użyj /E polecenia , aby spowodować, że makra dziedziczone ze zmiennych środowiskowych zastępują makra pliku make o tej samej nazwie. Użyj !UNDEF polecenia , aby zastąpić wiersz polecenia.

Zobacz też

Makra i NMAKE