Как делают Вас переменные доступа с помощью NMake?

У меня есть make-файл со следующим кодом. Я пытаюсь установить переменную в если оператор. Это не делает ошибки, но %OPTION% просто печать %OPTION (только с однопроцентным знаком) и $(OPTION) ничего не печатает. Помогите

Make-файл

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)
1
задан jww 13 November 2016 в 19:35
поделиться

1 ответ

Вы не можете устанавливать переменные внутри зависимых операторов (таких как "init" в данном случае). Фактически, вы также не можете использовать операторы if. Переменные могут быть установлены внешними пакетными файлами до вызова makefile (и этот пакетный файл затем может вызвать makefile) или вне зависимых операторов, таких как RELEASE_OR_DEBUG в этом примере.
Для доступа к переменным внутри операторов зависимостей используйте $(ИМЯ ПЕРЕМЕННОЙ). Имейте в виду, что если имя переменной не найдено, то будет просто использована пустая строка (как в вашем тесте "@echo test2 = $(OPTION)", где переменная OPTION не была найдена).

2
ответ дан 2 September 2019 в 23:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: