作為linux或unix下的程式開發人員,大家一定都遇到過makefile,用make命令來編譯自己寫的程式確實是很方便。一般開發情況下,大家都是手工寫乙個簡單makefile。下面先給乙個最簡單的示例**:
#makefile示例說明:object= main.o function.o
change:$(object)
cc -o change $(object)
mv change $(home)/bin
main.o:
cc -c main.c -i$(home)/program/date/include
function.o:
cc -c function.c -i$(home)/program/date/include
clean:
rm change $(object)
這裡是使用unix下的cc編譯器,當然也能換成gcc
最後生成的可執行檔名:change
源程式檔案:main.c function.c
.h檔案(標頭檔案)所在目錄:$(home)/program/date/include
中間目標檔名:main.o function.o
當在shall中執行命令:
make clean將會執行
rm change $(object)刪除檔案: change main.o function.o
語句:
mv change $(home)/bin將最終生成的可執行檔案移動到
$(home)/bin這一步可以不要,但這樣符合目錄管理規範,而且$(home)/bin一般在環境變數path中有設定,這樣可以在任意目錄下時也能執行可執行檔案。
注意:makefile編輯時另起一行,注意不能用空格,要用tab鍵,否則會報錯
makefile裡面的注釋用#,其它都會報錯
makefile簡單介紹
makefile是用於自動編譯和鏈結的,乙個工程有很多檔案組成,每乙個檔案的改變都會導致工程的重新鏈結,但是不是所有的檔案都需要重新編譯,makefile中紀錄有檔案的資訊,在make時會決定在鏈結的時候需要重新編譯哪些檔案。
makefile的宗旨就是:讓編譯器知道要編譯乙個檔案需要依賴其他的哪些檔案。當那些依賴檔案有了改變,編譯器會自動的發現最終的生成檔案已經過時,而重新編譯相應的模組。
makefile的簡單寫法
makefile 使用方法 vi 乙個makefile檔案 cc g 指的是用什麼編譯器 rm rm rf 定義乙個刪除的指令 變數 cflags c wall i.d debug 編譯標誌 冒號左邊是目標,右邊是依賴 client main.o client.o logreader.o conso...
zz makefile寫法簡單示例
例項1 obj a.o b.o main.o h a.h b.h dbg g main obj gcc obj dbg o main o cpp h g c o 例項2 作為linux或unix下的程式開發人員,大家一定都遇到過makefile,用make命令來編譯自己寫的程式確實是很方便。一般開發...
makefile簡介及其簡單編寫示例
makefile檔案裡面主要有三種內容 1.變數宣告 變數宣告就是一種基本的嚴格字元替換的操作。比如在前面宣告了 objects program.o foo.o utils.o 那麼在後面出現的所有 objects 或者 都會被自動替換成上面的那個字串行,而且是嚴格替換,即不帶空格的。2.對映法則 ...