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)
War es hilfreich?

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top