Из GNU Make Manual Я понимаю, что для .c
программ существует неявное правило:
n.o производится автоматически из n.c по рецепту в форме ‘$ (CC) $ (CPPFLAGS) $ (CFLAGS) -c’
Когда, например, я набираю make helloworld
и в моем рабочем каталоге есть только файл helloworld.c
, я вижу, что выполняется следующее:
cc helloworld.c -o helloworld
Если я наберу make -d helloworld
, я вижу, что make
никогда не ищет промежуточный файл helloworld.o
.
В конце я не вижу файл .o
в своем каталоге, только исполняемый файл. Как make
создает исполняемый файл из исходного файла, если неявное правило для программы .c
говорит, что оно должно создавать файл .o
?