2017-02-18 4 views
1

Может ли кто-нибудь объяснить, что означает $ (% SYMBOLIC) в целевом файле make-файла ниже?

R_all: $(%SYMBOLIC) 
    $(CD_MAKE) $(BASE_ROOT) R_all 
+0

сообщения всего Makefile –

ответ

1

Это просто переменная, называемая %SYMBOLIC. Из-за % характера, вы не можете установить такие переменный с нормальным = или := в Makefile, но вы можете установить его с define или в окружающей среде, если вы запустите сделать непосредственно execve

+0

Вы определенно можете использовать либо '=', либо ': =' для назначения переменной, где имя содержит символ '%' ...? – MadScientist

+0

Я думаю, это может зависеть от версии make относительно того, считает ли он '%' особым символом, который в противном случае мешает назначению. –

+0

Возможно, какая-то реализация сделана неправильно, но никакая версия GNU make не допустит эту ошибку. Вначале анализатор GNU ищет «разделитель», который представляет собой двоеточие или знак равенства и т. Д., И как только он обнаруживает, что он интерпретирует остальную часть строки на основе этого. Поэтому, если разделитель является '=' или ': =', тогда первое слово всегда будет считаться именем переменной, даже если оно содержит символ '%'. – MadScientist