2010-06-21 87 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)」測試中)。