¿Cómo se puede acceder a las variables utilizando nmake?
-
28-09-2019 - |
Pregunta
Tengo un makefile con el siguiente código. Estoy tratando de establecer una variable en una sentencia if. No error, pero sólo imprime %OPTION%
%OPTION
(con sólo un signo de porcentaje) y el $(OPTION)
no imprime nada. Por favor, ayuda
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)
Salida
test1 = %OPTION
test2 =
if ".debug" == ".debug" SET OPTION="-d"
OPTION = %OPTION
OPTION = $(OPTION)
Solución
No se puede establecer variables dentro de las declaraciones de dependencia (como "init" en este caso). De hecho, no se puede utilizar si las declaraciones allí tampoco. Las variables pueden establecerse por lotes archivos externo antes de llamar al makefile (y que archivo por lotes, podrá activar el makefile) o fuera de las declaraciones de dependencia como RELEASE_OR_DEBUG en este ejemplo.
Para las variables de acceso dentro de declaraciones de dependencias, utilice $ (VARIABLE_NAME). Tenga en cuenta que si no se encuentra el nombre de la variable, sino que simplemente va a utilizar una cadena en blanco (como en su "@echo test2 = $ (OPCIÓN)" prueba donde no se encontró el OPCIÓN variable).