2010-06-21 96 views
1

我有一个makefile与下面的代码。我试图在if语句中设置一个变量。它没有错误,但%OPTION%只是打印%OPTION(只有一个百分比符号)和$(OPTION)不打印任何东西。请帮助如何使用NMake访问变量?

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

回答

2

你不能设置相关性语句内部变量(如在这种情况下, “初始化”)。事实上,你也不能在那里使用if语句。在调用makefile之前,变量可以通过外部批处理文件进行设置(并且该批处理文件可以调用makefile),也可以在RELEASE_OR_DEBUG之类的依赖性语句之外进行设置。
要访问依赖性语句中的变量,请使用$(VARIABLE_NAME)。请注意,如果未找到变量名称,它将简单地使用空白字符串(例如,在未找到变量OPTION的“@echo test2 = $(OPTION)”测试中)。