用以下例子說明
「=」變數的值將會是整個makefile中最後被指定的值。
「:=」不會使用後面定義的變數,只能使用前面已經定義好的
name = zs
curname := $(name)
name = zhangsan
--------------------------------------curname將產生不同結果。
「?=」如果前面已經賦過值了,那麼就使用前面賦的值。
通過一堆變數,將要編譯的原材料準備好(同時方便移植)
------如果使用其它編譯器的話只需要修改第 1 行即可。第 2 行的變數 target 目標名字,不同的例程肯定名字不一樣。最後該2目錄即可
9~11 行:後面都會有乙個符號「\」,這個相當於「換行符」,表示本行和下一行屬於同一行,一般一行寫不下的時候就用符號「\」來換行。imx6u下只有.**件所以在srcdirs裡不用加。
第19行:加「-i」的目的是因為 makefile 語法要求指明頭檔案目錄的時候需要加上「-i」。
28~29行:變數 sobjs 和 cobjs 是.s 和.c 檔案編譯以後對應的.o 檔案目錄。同時將所有的.o 檔案都放到 obj 資料夾下
第 32 行: vpath 是特殊變數,指定搜尋目錄的,這裡指定的搜素目錄就是變數 srcdirs 所儲存的目錄,這樣當編譯的時候,若當前目錄下所需的.s 和.c 檔案找不到,就會在 srcdirs 中指定的目錄中查詢。
第42行:已經加上引數「-l」的頭檔案目錄。編譯的時候當前目錄下根據標頭檔案關係有的檔案找不到,就根據vpath找。
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...