《七》makefile中.h依賴文件 makefile無法察覺.h被修改的問題
之前的makefile主要考慮了.c文件.
很少考慮頭文件的問題.
所以會有個bug,
就是,你在工程里面修改了頭文件?如:helloworld.h被修改.
再次執(zhí)行make的時候,make是不會重新編譯的.
也就是說mkae不能自動識別到頭文件被修改.
簡單的解決辦法也有,就是:
在makeflie中,把頭文件作為依賴添加進去.
如下圖,添加了helloworld.h

但這并不是很好的解決辦法.
因為,工程中可能有成千上萬個.h文件.
不可能手動都敲一遍...
一種解決辦法是使用sed.
對上面程序.dep的注釋
其中,關于sed部分:
sed 's,\(.*\)\.o[ :]*,objs/\1.o: ,g' < $@.tmp > $@ ;
運行測試
工程結(jié)構(gòu)

運行

make?clean

標簽:makefile