這裏是我的Makefile的簡化版本:的Makefile:沒有規則的依賴關係不壞父母
all: myprogram
myprogram: main.o
c++ main.o -o myprogram
main.o: main.cpp mylib.hpp
c++ -c main.cpp
mylib.hpp: mylib.inl
所有上面提到的這些文件是真實的文件。當我改變mylib.hpp
時,main.cpp
重新編譯。但是,我的問題是,當我改變mylib.inl
,main.cpp確實沒有重新編譯。當我編輯mylib.inl
時,如何使main.o
目標無效並因此使myprogram
目標無效?我寧願而不是使用.PHONY
目標,因爲我不想每次都重新編譯所有內容,只是當我編輯mylib.inl
時。
嗯也許觸摸mylib.hpp或將'mylib.hpp'放在'main.o:main.cpp mylib.hpp mylib.inl' – chux