天天看點

Makefile學習筆記(一)

Linux下gcc/g++為我們提供了一個完善的c/c++程式編譯環境,可是為什麼還需要Makefile呢?原因很簡單,Makefile就是告訴g++編譯器怎樣進行編譯的一組規則。g++提供的make工具能夠讀取Makefile所定義的規則,并生成我們所需要的目标檔案。當然我們也可以不寫Makefile,用g++手動一個檔案一個檔案按順序編譯,但是當你面對大型項目的時候這種手動的方法就無能為力了,需要一套自動化的機制,Makefile的目的也正在于此。

Sample: 項目有兩個檔案,hello.cpp 和add.h

Makefile:

hello: hello.cpp add.o

           g++  hello.cpp -o hello

add.o: add.h

           g++ add.h -c

Makefile的格式:

target file: source file1,source file2,....

            [command]

            [command]

target file2: source file3, source file4..

            [command]

            [command]

Make工具以遞歸回朔的方式解釋Makefile,首先看target file是否存在或者是否過期,如是,并且source files均存在,則執行下面的command.., 跳過command檢查target file2. 最後回朔。生成我們最終的目标檔案。

繼續閱讀