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:
Makro zdefiniowane w wierszu polecenia
Makro zdefiniowane w pliku make lub pliku dołączania
Makro dziedziczonej zmiennej środowiskowej
Makro zdefiniowane w
Tools.ini
pliku
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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla