一、基本概念
1.是什么
make是一條命令,makefile是一個文件
2.對應
在vs中按一下f5就能運行代碼,在Linux中make就相當于f5,使用makefile來封裝從而實現我, 想要的功能
3.使用
①創建makefile文件
②編輯makefile
解釋:test.exe依賴于test.c下邊是gcc編譯
③make
輸入make自動實現makefile中編譯
二、make和makefile
1.依賴關系和依賴方法
test.exe依賴于test.c,gcc是依賴方法
2.模擬編譯過程
3.makefile推導過程
4.清理工作
①細節1:依賴關系必須存在,依賴文件列表也可以為空(像clean這樣的)
②細節2:以來方法可是是任何指令
③細節3:clean目標是利用make的自動推導能力讓他執行rm命令,在構建工程的視角,看起來就是清理項目,本質就是刪除不需要的文件
④細節4:make命令后邊可以跟目標名,后邊跟誰就解析誰的依賴方法,且默認只會推導一條完整的推導鏈路,且默認推導第一個。如果把clean放前邊make就會執行clean
三、?.PHONY
1.本質
總是被執行的
2.功能
有.PHONY時,可多次執行
無.PHONY時
3.底層
文件 = 文件內容+文件屬性
Assess:文件被訪問的時間,有刷新次數,不是每次查看都更新
Modify文件內容
change文件屬性
沒有.PHONY時Modify修改的時間,源文件必須比可執行文件新才可以編譯
.PHONY可以讓gcc或者對應的命令,忽略MOD時間對比新舊,從而達到可以無限執行
四、makefile的關鍵字
1.@
在命令前加執行不回顯
2.替換
該內部符號只需要改上邊就行了
3.多個文件的處理
①建立多個文件
②
③通用