我有一个带有以下代码的makefile。我正在尝试在if语句中设置变量。它没有错误,但是 %OPTION% 只是打印 %OPTION (只有一个百分比)和 $(OPTION) 不打印任何东西。请帮忙

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)  

输出

test1 = %OPTION  
test2 =   
if ".debug" == ".debug" SET OPTION="-d"  
OPTION = %OPTION  
OPTION = $(OPTION)
有帮助吗?

解决方案

您无法在依赖项语句中设置变量(例如,在这种情况下为“ init”)。实际上,您也不能使用if语句。可以在调用makefile之前通过外部批处理文件设置变量(然后批处理文件可以调用makefile),也可以在此示例中的repartion_or_debug之类的依赖项语句外部设置。
要访问依赖项语句中的变量,请使用$(variable_name)。请注意,如果找不到变量名称,它将仅使用空白字符串(例如在您的“ @echo test2 = $(option)”中,在未找到变量选项的情况下)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top