echo не работает из Makefile

#linux #makefile

#linux #makefile

Вопрос:

Я добавил код в Makefile что-то вроде:

 ifeq "$var" "1"
    var_1 := 1
    echo "g   version OK"
    $(info $(var_1))
else
    echo "needs to be updated"
endif
  

Я использую вкладки везде в этой части кода. Похоже, это не работает, при запуске make вообще ничего не отображается, Makefile уже содержит объектные файлы и флаги и т. Д. Имеет ли это какое-то отношение к позиции кода? Я не могу определить. Пожалуйста, помогите.

Комментарии:

1. пожалуйста, опубликуйте весь свой makefile. Из этого фрагмента синтаксис, который вы используете, кажется неправильным ifeq . Кроме того, если это не является частью recipe, вам следует использовать $(info "g version is ok") .

Ответ №1:

echo это команда оболочки, она работает только из рецепта или $(shell ...) функции.

Где-нибудь еще используйте $(info ...) функцию.

Комментарии:

1. Здравствуйте. Спасибо! Это помогает, но теперь я обнаружил новую проблему, переменная внутри ifeq не устанавливается, когда я пытаюсь распечатать ее с помощью $(info ..), Я ничего не получаю на консоли, обновления в вопросе.

2. @user5400132 Я обнаружил новую проблему — это вызывает новый вопрос.