2012-07-02 191 views
1

我有3個文件make文件:頭包括另一頭C++

main.cpp 
a.h 
b.h 

main.cpp中包括了啊和bh BH包括啊

任何人都可以解釋我,我應該怎麼寫了一個make文件這個?

這是正確的嗎?

objects = main.o 
sources = main.cpp 

myProj: $(objects) 
    g++ -o myProj $(objects) 

main.o: a.h b.h 


$(objects): $(sources) 
    g++ -c $(sources) 

clean: 
    rm $(objects) myProj 

我不知道如何指定啊BH的依賴

回答

2

由於頭總是編譯成.C/.cpp文件的一部分,沒有必要指定報頭到頭部的依賴。您已指定的依賴關係已足夠,因爲main.cpp將在a.h和/或b.h更改時重新編譯。

+0

所以我的make文件是糾正? – user1344389

+0

@ user1344389是的,我認爲這是正確的。您可以通過修改一個或兩個頭來檢查依賴關係是否正常,並檢查它是否觸發重新編譯;這應該。 – dasblinkenlight

+2

@ user1344389閱讀[自動變量](http://www.gnu.org/software/make/manual/make.html#Automatic-Variables)以改善您的makefile可能是有教育意義的。例如,用'g ++ -o myProj $(對象)'來代替'g ++ -o $ @ $ ^' –