Я читаю документ GNU Make. Вот примерЗнаки Four Dollar в Makefile
% .d:% .c
@set -e; rm -f [email protected]; \ $(CC) -M $(CPPFLAGS) $< > [email protected]$$$$; \ sed ’s,\($*\)\.o[ :]*,\1.o [email protected] : ,g’ < [email protected]$$$$ > [email protected]; \ rm -f [email protected]$$$$
Я попробовал это на C++ программы, и получил список файлов
init3d.d init3d .d.18449 input.d input.d.18444 main.d main.d.18439
Вот что я нашел, но не знаю nderstand в том же document
Если вы включили вторичное расширение, и вы хотите буквальный знак доллара в списке предпосылок, вы должны фактически написать четыре знака доллара («$$$$»).
Интересно, что означают четыре знака доллара «$$$$»? Как они 18449, 18444 или 18439?
Спасибо и приветствую!
Вторичное расширение не влияет на содержимое рецепта. Только список предварительных условий. Поэтому '$$$$' всегда будет вызывать '$$' в контексте рецепта. Вам нужно только '$$$$' в списке предварительных условий, чтобы получить один '' ', когда включено вторичное расширение (когда оно не использует' $$ ', вы получите это). –
Это не ответ. Вторичное расширение не имеет значения. – reinierpost
@reinierpost кажется, что у вас такие же трудности понимания, как и Этан Рейснер :) Оригинальный плакат говорил о вторичной экспансии, поэтому я и написал об этом. Фактическое объяснение приведено во втором абзаце, и наиболее вероятная причина использования этой конструкции приведена в третьем абзаце в скобках. –