make/makefile
make/makefile: 項目自動化構建工具
makefile:普通文本文件,記錄了項目的構建流程規則。
make: 一個解釋程序,到當前執行make命令的目錄下尋找makefile文件,并且對makefile 中記錄的項目構建規則進行解釋執行。
makefile: 編寫規則
目標對象:依賴對象[tab]命令操作
Make執行規則
解釋執行時,在makefile中尋找目標對象(只尋找第一個目標對象),找到目標對象后,執行命令操作
生成兩個程序
但是只生成一個
如果有目標對象,判斷對象是否存在?:
如果目標對象不存在:執行命令操作—生成目標對象
如果目標對象已存在: 判斷是否有依賴對象?
沒有依賴對象:直接報錯(目標最新)-不需要重新生成
如果有依賴對象:判斷依賴對象是否存在?
依賴對象存在:通過目標對象和依賴對象大的最后一次修改時間判斷是否需要重新生成目標對象
依賴對象不存在:make繼續在makefile中尋找依賴對象的生成規則,先生成依賴對象,進而生成目標對象
預定義變量
預定義變量:
$@:目標對象$^:所有依賴對象$<:依賴對象的第一個
%通配符
不用手動添加每一個目標對象生成規則
(wildcard 目錄名) 獲取當前目錄
(patsusbst 目錄名 ,目錄名,變量) 字符串替換
**尾對象:目標對象每次都需要重新執行(不管是否存在,是否更新)
聲明尾對象:.PHONY**