Make: Использование статических шаблонных правил в make - PullRequest
0 голосов
/ 21 декабря 2018

Я хотел бы знать, как использовать статические шаблонные правила в сравнении с обычными правилами в make.Я новый, чтобы сделать и прошел некоторые уроки.Я хочу знать, когда мы используем этот статический шаблон правил?Не могли бы вы объяснить вкратце?

Заранее спасибо.

1 Ответ

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

Ваш вопрос в основном вопрос мнения.Обратите внимание, что есть несколько средств автоматизации сборки инструментов (не только GNU make ), например, также ниндзя , scons , omake и т. Д. *

Когда вы кодируете в C (или в C ++ ....) какой-то проект, вы можете иметь несколько файлов C (или C ++), которые генерируются изчто-то еще (например, lemon или вашей собственной утилитой ...).Для таких случаев (педантично вы можете назвать их метапрограммирование ), правила шаблонов могут быть полезны (в частности, если у вас есть несколько таких случаев в проекте).В других случаях вы генерируете другие файлы (кроме объектных файлов) из источника C (например, генерируете документацию с помощью doxygen ), и тогда правила шаблона также очень полезны.

Пример большого C ++Проект со многими генераторами кода C ++ является GCC компилятором.И еще, когда (в 2009 году) GCC был написан на C, он уже имел дюжину специализированных программ генерации кода, испускающих некоторый C-код.Для этих случаев могут быть удобны правила шаблонов.

Конечно, правила шаблонов - это роскошь.В принципе, вы можете сгенерировать Makefile, и он будет содержать простое правило для каждого отдельного файла.(в GCC Makefile -s генерируется autoconf и automake основанными на вещах ...)

Если вы наблюдаете иИзучите исходный код большинства больших свободных программ проектов, и вы обнаружите, что в большинстве из них есть генераторы для файлов C (или C ++).Поэтому генерация кода на C - это обычная практика (оригинальный Unix конца 1970-х уже делал это).Сегодня некоторые программные проекты генерируют большую часть или даже все (например, CAIA ) своего кода C.

...