近期學習 linux 需要使用 makefile,網上蒐羅了很多這方面的資料,所裡在這裡做乙個整理。
1、靜態模式
看乙個例子:
objects =foo.o bar.oall: $(objects)
$(objects): %.o: %.c
$(cc) -c $(cflags) $< -o $@
上面的例子中,指明了我們的目標從 $object 中獲取,
「%.o」表明要所有以「.o」結尾的目標,也就是「foo.o bar.o」,也就是變數 $object 集合的模式,
而依賴模式「%.c」則取模式「%.o」的「%」,也就是「foo bar」,並為其加下「.c」的字尾,於是,我們的依賴目標就是「foo.c bar.c」。
而命令的「$<」和「$@」則是自動化變數,「$<」表示所有的依賴目標集(也就是「foo.c bar.c」),「$@」表示目標集(也就是「foo.o bar.o」)。
於是,上面的
規則展開後等價於下面的規則:
foo.o : foo.c$(cc) -c $(cflags) foo.c -o foo.o
bar.o : bar.c
$(cc) -c $(cflags) bar.c -o bar.o
makefile簡說 編寫makefile
linux下原始碼編譯 linux下原始碼編譯c c 通常使用gnu工具鏈。c c 的編譯過程,通常為原始檔 c cc cpp字尾檔案 編譯為中間目標檔案 即生成為.s o等字尾的中間檔案 再通過鏈結生成可執行檔案 編譯器的編譯過程大致分為四個步驟 預處理 編譯 彙編和鏈結 建立乙個專案檔案proj...
makefile編寫說明
1.定義 makefile是通過制定規則來編譯程式的乙個指令碼而已。在linux中使用make命令來執行makefile檔案。2.命名 makefile或makefile,若是指定其他名稱。如 makefile.可以這樣使用make f makefile或make clean f makefile ...
makefile編寫方法
什麼是makefile?或許很多winodws的程式設計師都不知道這個東西,因為那些windows的ide都 為你做了這個工作,但我覺得要作乙個好的和 professional的程式設計師,makefile還是要懂 這就好像現在有這麼多的html的編輯器,但如果你想成為乙個專業人士,你還是要了解 h...