давайте предположим, что у меня есть некоторый Makefile для Unix
prog:a.o b.o c.o
gcc a.o b.o c.o -o prog
a.o:a.c a.h b.h
gcc -c a.c
b.o:b.c b.h
gcc -c b.c
c.o:c.c c.h b.h
gcc -c c.c
Я прочитал, что если я изменяю * .c файл, я должен перекомпилировать только этот файл, но если я изменяю * .h файл, я должен перекомпилировать все файлы, которые зависят от моего * .h файла, после обоих случаев в любом случае I must link
все файлы с начала
1)
давайте предположим, что я меняю только b.h, так что мне нужно делать?
мой вариант make a.o b.o c.o
я прав?
2)
давайте предположим, что я изменяю только c.c, так что мне нужно делать?
мой вариант make c.o
я прав?
и, наконец, если я напишу make c.o
например мой make-файл ONLY recompile c.o
но what about linker
? У меня только gcc -c c.c
а не -o
заранее спасибо за любую помощь