Specjalne makra NMAKE
NMAKE udostępnia kilka specjalnych makr do reprezentowania różnych nazw plików i poleceń. Jednym z tych makr jest użycie wstępnie zdefiniowanych reguł wnioskowania. Podobnie jak we wszystkich makrach, w makrach udostępnianych przez NMAKE uwzględniana jest wielkość liter.
Makra nazwy pliku
Makra nazwy pliku są wstępnie zdefiniowane jako nazwy plików określone w zależności (nie pełne specyfikacje nazwy pliku na dysku). Te makra nie muszą byćclosed w nawiasach po wywołaniu; określ tylko element , $
jak pokazano.
Macro | Znaczenie |
---|---|
$@ |
Pełna nazwa bieżącego obiektu docelowego (ścieżka, nazwa podstawowa, rozszerzenie), zgodnie z bieżącymi danymi. |
$$@ |
Pełna nazwa bieżącego obiektu docelowego (ścieżka, nazwa podstawowa, rozszerzenie), zgodnie z bieżącymi danymi. Prawidłowe tylko jako zależność zależna. |
$* |
Ścieżka bieżącego obiektu docelowego i nazwa podstawowa minus rozszerzenie pliku. |
$** |
Wszystkie zależnych od bieżącego celu. |
$? |
Wszystkie zależności z późniejszym znacznikiem czasu niż bieżący element docelowy. |
$< |
Plik zależny z późniejszym znacznikiem czasu niż bieżący element docelowy. Prawidłowe tylko w poleceniach w regułach wnioskowania. |
Aby określić część wstępnie zdefiniowanego makra nazwy pliku, dołącz modyfikator makra i wprowadźclzmodyfikowane makro w nawiasach.
Modyfikator | Wynikowa część nazwy pliku |
---|---|
D |
Dysk plus katalog |
B |
Nazwa podstawowa |
F |
Nazwa podstawowa i rozszerzenie |
R |
Dysk plus katalog plus nazwa podstawowa |
Makra rekursji
Użyj makr rekursji, aby wywołać rekursywnie NMAKE. Rekursywne sesje dziedziczą makra wiersza polecenia i zmiennej środowiskowej oraz Tools.ini
informacje. Nie dziedziczą reguł wnioskowania zdefiniowanych przez plik make ani .SUFFIXES
.PRECIOUS
specyfikacji. Istnieją trzy sposoby przekazywania makr do cyklicznej sesji NMAKE:
- Ustaw zmienną środowiskową
SET
za pomocą polecenia przed wywołaniem cyklicznym. - Zdefiniuj makro w poleceniu dla wywołania cyklicznego.
- Możesz też zdefiniować makro w pliku
Tools.ini
.
Macro | Definicja |
---|---|
MAKE |
Polecenie używane pierwotnie do wywoływania NMAKE. Makro $(MAKE) daje pełną ścieżkę do nmake.exe . |
MAKEDIR |
Bieżący katalog po wywołaniu narzędzia NMAKE. |
MAKEFLAGS |
Obecnie obowiązują opcje. Użyj jako /$(MAKEFLAGS) . Opcja /F nie jest wcluded. |
Makra poleceń i makra opcji
Makra poleceń są wstępnie zdefiniowane dla produktów firmy Microsoft. Makra opcji reprezentują opcje dla tych produktów i są domyślnie niezdefiniowane. Oba są używane w wstępnie zdefiniowanych reguł wnioskowania i mogą być używane w blokach opisu lub regułach wnioskowania zdefiniowanych przez użytkownika. Makra poleceń można ponownie zdefiniować w celu reprezentowania części lub całego wiersza polecenia wclopcjach zdefiniowanych przez użytkownika. Makra opcji generują ciąg o wartości null, jeśli pozostawiono niezdefiniowane.
Narzędzie | Makro polecenia | Zdefiniowane jako | Makro opcje |
---|---|---|---|
Asembler makr | AS |
ml lub ml64 |
AFLAGS |
Kompilator języka C | CC |
cl |
CFLAGS |
Kompilator C++ | CPP |
cl |
CPPFLAGS |
Kompilator C++ | CXX |
cl |
CXXFLAGS |
Resource Compiler | RC |
rc |
RFLAGS |
Makra zmiennych środowiskowych
NMAKE dziedziczy definicje makr dla zmiennych środowiskowych, które istnieją przed rozpoczęciem sesji. Jeśli zmienna została ustawiona w środowisku systemu operacyjnego, jest dostępna jako makro NMAKE. Dziedziczone nazwy są konwertowane na ase upperc. Dziedziczenie następuje przed przetwarzaniem wstępnym. Użyj opcji /E, aby spowodować, że makra dziedziczone ze zmiennych środowiskowych zastępują wszystkie makra o tej samej nazwie w pliku make.
Makra zmiennych środowiskowych można ponownie zdefiniować w sesji. Spowoduje to zmianę odpowiedniej zmiennej środowiskowej. Zmienne środowiskowe można również zmienić za pomocą polecenia SET. Użycie polecenia SET w celu zmiany zmiennej środowiskowej w sesji nie powoduje jednak zmiany odpowiedniego makra.
Przykład:
PATH=$(PATH);\nonesuch
all:
echo %%PATH%%
W tym przykładzie zmiana zmienia PATH
odpowiadającą mu zmienną środowiskową PATH
; dołącza \nonesuch
ją do ścieżki.
Jeśli zmienna środowiskowa jest zdefiniowana jako ciąg, który będzie składniowo niepoprawny w pliku make, żadne makro nie zostanie utworzone i nie zostanie wygenerowane żadne ostrzeżenie. Jeśli wartość zmiennej zawiera znak dolara ($), NMAKE interpretuje ją jako początek wywołania makra. Użycie makra może spowodować nieoczekiwane zachowanie.
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