Comment avez-vous accès variables à l'aide NMake?
-
28-09-2019 - |
Question
J'ai un makefile avec le code suivant. Je suis en train de définir une variable dans une instruction if. Il ne l'erreur pas, mais %OPTION%
imprime juste %OPTION
(avec un seul signe de pourcentage) et la $(OPTION)
n'imprime rien. S'il vous plaît aider
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)
Sortie
test1 = %OPTION
test2 =
if ".debug" == ".debug" SET OPTION="-d"
OPTION = %OPTION
OPTION = $(OPTION)
La solution
Vous pouvez définir des variables non à l'intérieur des états de dépendance (comme dans ce cas « init »). En fait, vous ne pouvez pas utiliser si des déclarations non plus. Les variables peuvent être réglées par lot des fichiers externes avant d'appeler le makefile (et ce fichier batch peut alors appeler le makefile) ou en dehors des états de dépendance comme RELEASE_OR_DEBUG dans cet exemple.
Pour les variables d'accès à l'intérieur des états de dépendance, utilisez $ (VARIABLE_NAME). Sachez que si le nom de la variable est introuvable, il suffit d'utiliser une chaîne vide (comme dans votre « @echo test2 = $ (OPTION) » test où n'a pas été trouvé la variable OPTION).