Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
NMAKE innehåller flera speciella makron som representerar olika filnamn och kommandon. En användning för vissa av dessa makron finns i de fördefinierade slutsatsdragningsreglerna. Liksom alla makron är makrona som tillhandahålls av NMAKE skiftlägeskänsliga.
Makron för filnamn
Filnamnsmakron är fördefinierade som filnamn som anges i beroendet (inte fullständiga filnamnsspecifikationer på disken). Dessa makron behöver inte omges av parenteser när de anropas. ange endast en $ som visas.
| Makro | Betydelse |
|---|---|
$@ |
Det aktuella målets fullständiga namn (sökväg, basnamn, tillägg) som angetts för tillfället. |
$$@ |
Det aktuella målets fullständiga namn (sökväg, basnamn, tillägg) som angetts för tillfället. Gäller endast som beroende i ett beroende. |
$* |
Det aktuella målets sökväg och basnamn minus filnamnstillägg. |
$** |
Alla beroenden av det aktuella målet. |
$? |
Alla beroenden med en senare tidsstämpel än det aktuella målet. |
$< |
Beroende fil med en senare tidsstämpel än det aktuella målet. Gäller endast i kommandon i slutsatsdragningsregler. |
Om du vill ange en del av ett fördefinierat filnamnsmakro lägger du till en makromodifierare och omger det ändrade makrot inom parenteser.
| Modifierare | Resulterande filnamnsdel |
|---|---|
D |
Enhet plus katalog |
B |
Basnamn |
F |
Basnamn plus tillägg |
R |
Enhet plus katalog plus basnamn |
Rekursionsmakron
Använd rekursionsmakron för att anropa NMAKE rekursivt. Rekursiva sessioner ärver kommandorads- och miljövariabelmakron och Tools.ini information. De ärver inte makefile-definierade slutsatsdragningsregler eller .SUFFIXES och .PRECIOUS specifikationer. Det finns tre sätt att skicka makron till en rekursiv NMAKE-session:
- Ange en miljövariabel med ett
SETkommando före det rekursiva anropet. - Definiera ett makro i kommandot för det rekursiva anropet.
- Eller definiera ett makro i
Tools.ini.
| Makro | Definition |
|---|---|
MAKE |
Kommandot användes ursprungligen för att anropa NMAKE. Makrot $(MAKE) ger den fullständiga sökvägen till nmake.exe. |
MAKEDIR |
Aktuell katalog när NMAKE anropades. |
MAKEFLAGS |
Alternativ som för närvarande gäller. Använd som /$(MAKEFLAGS). Alternativet /F ingår inte. |
Kommandomakron och alternativmakron
Kommandomakron är fördefinierade för Microsoft-produkter. Alternativmakron representerar alternativ för dessa produkter och är odefinierade som standard. Båda används i fördefinierade slutsatsdragningsregler och kan användas i beskrivningsblock eller användardefinierade slutsatsdragningsregler. Kommandomakron kan omdefinieras så att de representerar en del av eller hela en kommandorad, inklusive alternativ. Alternativmakron genererar en null-sträng om den lämnas odefinierad.
| Verktyg | Kommandomakro | Definieras som | Alternativmakron |
|---|---|---|---|
| Makromonterare | AS |
ml eller ml64 |
AFLAGS |
| C-kompilator | CC |
cl |
CFLAGS |
| C++-kompilator | CPP |
cl |
CPPFLAGS |
| C++-kompilator | CXX |
cl |
CXXFLAGS |
| Resurskompilerare | RC |
rc |
RFLAGS |
Miljövariabelmakron
NMAKE ärver makrodefinitioner för miljövariabler som finns före sessionens start. Om en variabel har angetts i operativsystemets miljö är den tillgänglig som ett NMAKE-makro. De ärvda namnen konverteras till versaler. Arv sker före förbearbetning. Använd alternativet /E för att få makron som ärvts från miljövariabler att åsidosätta makron med samma namn i makefile.
Miljövariabelmakron kan omdefinieras i sessionen och detta ändrar motsvarande miljövariabel. Du kan också ändra miljövariabler med KOMMANDOT SET. Om du använder SET-kommandot för att ändra en miljövariabel i en session ändras dock inte motsvarande makro.
Till exempel:
PATH=$(PATH);\nonesuch
all:
echo %%PATH%%
I det här exemplet ändras motsvarande miljövariabel PATHom du ändrar PATH . den lägger till \nonesuch till din sökväg.
Om en miljövariabel definieras som en sträng som skulle vara syntaktiskt felaktig i en makefil skapas inget makro och ingen varning genereras. Om en variabels värde innehåller ett dollartecken ($) tolkar NMAKE det som början på ett makroanrop. Att använda makrot kan orsaka oväntat beteende.