Правило make-файла без выражения зависимости

Я читал, немецкая статья о "Делают" на Википедию и нашел следующие 2 строки:

.c.o:
     $(CC) $(CFLAGS) -c -o $@ $<

Почему выражение зависимости не учтено и почему цель использует двойное расширение файла?

5
задан Mike Dooley 18 April 2010 в 11:40
поделиться

2 ответа

Это фактически определяет суффиксное правило ... оно определяет, как создать файл, заканчивающийся на ".o", из соответствующего файла, заканчивающегося на ".c", что указывает программе make сделать вывод, что « filename .c», если он существует, является зависимостью для « filename .o» для любого такого имени файла, и что « filename .o» файл может быть построен из его * .c-зависимости с предоставленным правилом.

Я должен отметить, однако, что эта строка совершенно не нужна и, по сути, не является чем-то, что нужно помещать в Makefile, поскольку Make уже способна вывести такой тип зависимости. Возможно, вас заинтересует мой учебник по Makefile , поскольку в нем довольно подробно рассказывается обо всех вещах, которые Make может вывести.

5
ответ дан 13 December 2019 в 22:04
поделиться

Это то, что называется «суффиксным правилом» и используется для создания цели со вторым суффиксом из источника с первым суффиксом, если как известно, делают суффиксы. См. Суффиксные правила в make руководстве для более подробного описания

5
ответ дан 13 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: