Sdílet prostřednictvím


Definování makra NMAKE

Makro NMAKE je definováno pomocí této syntaxe:

macro_name=string

Macro_name je kombinace písmen, číslic a podtržítka (_) o délce až 1 024 znaků. Macro_name může obsahovat vyvolané makro. Pokud se macro_name skládá výhradně z vyvolaného makra, nemůže být vyvoláno makro null ani nedefinováno.

Řetězec může být libovolná posloupnost nula nebo více znaků. Řetězec null obsahuje nula znaků nebo pouze mezery nebo tabulátory. Řetězec může obsahovat vyvolání makra.

Speciální znaky v makrech

Znak čísla (#) za definicí určuje komentář. Pokud chcete zadat znak literálového čísla v makrech, použijte stříšku (^) k jeho řídicímu znaku, jako v ^#.

Znak dolaru ($) určuje vyvolání makra. Chcete-li zadat literál $, použijte $$.

Pokud chcete rozšířit definici na nový řádek, ukončete řádek zpětným lomítkem (\). Při vyvolání makra se zpětné lomítko a následující znak nového řádku nahradí mezerou. Pokud chcete zadat zpětné lomítko literálu na konci řádku, před něj použijte řídicí stříšku (^) nebo ho použijte specifikátor komentáře (#).

Pokud chcete zadat literálový znak nového řádku, ukončete řádek stříškou (^) řídicím znakem, jak je znázorněno v tomto příkladu:

CMDS = cls^
dir

Hodnota Null a nedefinovaná makra

Makra s hodnotou null i nedefinovaná se rozšiřují na řetězce null, ale makro definované jako řetězec null se považuje za definované ve výrazech předběžného zpracování. Chcete-li definovat makro jako řetězec s hodnotou null, zadejte žádné znaky kromě mezer nebo tabulátorů za znaménkem rovná se (=) v příkazovém řádku nebo souboru příkazu a uzavřete řetězec null nebo definici do dvojitých uvozovek (" "). Chcete-li zrušit definici makra, použijte !UNDEF. Další informace naleznete v tématu Direktivy předběžného zpracování souboru pravidel.

Místo definice maker

Definujte makra v příkazovém řádku, příkazovém souboru, souboru makefile nebo Tools.ini souboru.

V souboru pravidel nebo souboru Tools.ini musí být každá definice makra zobrazena na samostatném řádku a nesmí začínat mezerou nebo tabulátorem. Mezery nebo tabulátory kolem symbolu rovná se ignorují. Všechny znaky řetězce jsou literál, včetně okolních uvozovek a vložených mezer.

V příkazovém řádku nebo příkazovém souboru jsou argumenty mezerami a tabulátory oddělené a nemůžou znaménko rovná se ohraničovat. Pokud řetězec obsahuje vložené mezery nebo tabulátory, uzavřete buď samotný řetězec, nebo celé makro do uvozovek (" ").

Priority v definicích maker

Pokud má makro více definic, NMAKE použije definici s nejvyšší prioritou. Následující seznam zobrazuje pořadí priorit od nejvyšších po nejnižší:

  1. Makro definované na příkazovém řádku

  2. Makro definované v souboru pravidel nebo v souboru zahrnutí

  3. Zděděné makro proměnné prostředí

  4. Makro definované v Tools.ini souboru

  5. Předdefinované makro, například CC a AS

Slouží /E k tomu, aby makra zděděná z proměnných prostředí přepsala makra souboru pravidel se stejným názvem. Slouží !UNDEF k přepsání příkazového řádku.

Viz také

Makra a příkaz NMAKE