Правило make-файла без выражения зависимости - PullRequest
5 голосов
/ 18 апреля 2010

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

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

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

Ответы [ 2 ]

5 голосов
/ 18 апреля 2010

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

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

5 голосов
/ 18 апреля 2010

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

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