Функция $ (shell) в make-файле GNU приводит к «неопределенному вызову функции shell: отсутствует)» - PullRequest
0 голосов
/ 18 декабря 2018

Описание:

В моем make-файле GNU есть следующий фрагмент:

test:=$(shell grep '#pragma' test_types.h)
$(info test:$(test))

Выше приведено следующее сообщение об ошибке:

*** не завершенный вызовдля функции 'shell': отсутствует ')'.STOP

Однако, если я уберу '#' из приведенного выше фрагмента:

test:=$(shell grep 'pragma' test_types.h)
$(info test:$(test))

Вывод:

test: #pragma pack(push, 1) #pragma pack (pop)

Если я запускаю следующее непосредственно из командной строки: grep '#pragma' test_types.h.Вывод снова:

# пакет прагмы (push, 1) # пакет прагмы (pop)

Вопрос:

Что вызывает поведение функции оболочки при объединении grep споиск # в make-файле GNU?

1 Ответ

0 голосов
/ 18 декабря 2018

Это интерпретирует # как начало комментария, поэтому остальная часть строки больше не видна.

Вместо символа экранируйте как #, и он будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...