Wie greifen Sie auf Variablen NMake?
-
28-09-2019 - |
Frage
habe ich eine Make-Datei mit dem folgenden Code. Ich versuche, eine Variable in einer if-Anweisung zu setzen. Es Fehler nicht, aber %OPTION%
nur druckt %OPTION
(mit nur einem Prozentzeichen) und die $(OPTION)
nichts drucken. Bitte Hilfe
Makefile
RELEASE_OR_DEBUG=debug
init:
SET OPTION=test
@echo test1 = %OPTION%
@echo test2 = $(OPTION)
if ".$(RELEASE_OR_DEBUG)" == ".debug" SET OPTION="-d"
@echo OPTION = %OPTION%
@echo OPTION = $(OPTION)
Output
test1 = %OPTION
test2 =
if ".debug" == ".debug" SET OPTION="-d"
OPTION = %OPTION
OPTION = $(OPTION)
Lösung
Sie können keine Variablen in Abhängigkeit Aussagen (wie „init“ in diesem Fall) gesetzt. In der Tat kann man nicht, wenn Aussagen dort entweder verwenden. Variablen können durch externe Batch-Dateien vor dem Aufruf der Make-Datei eingestellt werden (und das Batchdatei dann die Make-Datei aufrufen können) oder außerhalb der Abhängigkeit Aussagen wie RELEASE_OR_DEBUG in diesem Beispiel.
Um den Zugriff Variablen innerhalb Abhängigkeit Aussagen verwenden $ (VARIABLE_NAME). Beachten Sie, dass, wenn der Variablenname nicht gefunden wird, wird es einfach eine leere Zeichenfolge verwenden (wie in Ihrer „@echo test2 = $ (OPTION)“ Test, bei dem die Variable OPTION nicht gefunden wurde).