makefile 參數記錄

makefile 參數記錄

學習makefile, 記錄一些參數的使用


常用參數

參數 說明 示例 註釋
-jn 使用多核編譯,n爲使用核心數量,最多爲CPU內核個數 make -j2 使用兩個內核編譯
-j 自動使用CPU最大的核心數量編譯 make -j 我的電腦爲4核等效make -j4
NAME=param 使用make命令行傳遞參數到makefile make BUILD_DIR=build 等效爲在makefile中定義變量BUILD_DIR=build
-n 只顯示不執行makefile make -n 打印makefile所執行的命令

常用符號

類型 符號 作用 描述
文件名通配符 * 匹配任意字符 *.c : 所有.c結尾的文件
? 匹配任意字符 包含空
常用符 \ 命令換行符
運算符 = 變量賦值 object = fi.o 用於所賦值的對象是常量
?= 爲空賦值 若變量沒有賦值,則給它賦值,否則不賦值
:= 變量賦值 object := ${tmp} 用於賦值是個變量
+= 追加賦值 object += tmp.o 將tmp.o追加到object
自動化變量 $@ 當前target 當前目標名
$< 第一個依賴名
$^ 所有依賴名 去重target:d1 d2 則 $^=d1 d2
$+ 所有依賴名 不去重
$? 比目標新的依賴名
$* 目標中%匹配的部分 %.o:%.c 。有a.o目標時$*值爲a
$(@D) 目標的目錄部分 目標爲tmp/test,$(@D)值爲tmp
$(@F) 目標的文件部分 目標爲tmp/test,$(@D)值爲test
$(<D) 依賴文件的目錄部分
$(<F) 依賴文件的文件部分
$(^D) 所有依賴文件的目錄部分 去重
$(^F) 所有依賴文件的文件部分 去重
$(+D) 所有依賴文件的目錄部分 不去重
$(+F) 所有依賴文件的文件部分 不去重
$(?D) 被更新的依賴文件的目錄部分
$(?F) 被更新的依賴文件的文件部分
特別字符 % 任意匹配符 類似shell的 *
@ 不顯示執行命令 command前加@後 不打印改條命令
- 出錯不中斷 command前加-,出現執行錯誤不中斷makefile編譯

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章