make命令可以帶幾種引數: 標誌, 巨集定義, 描述檔名和目標檔名, 標準形式為:
make [flags] [macro definitions] [targets]
在unix下, flags包含:
-f file 指定file檔案為描述檔案. 如果file引數為"-", 描述檔案指向標準輸入, 如果沒有"-f", 則系統預設當前目錄下makefile或makefile為描述檔案. (ps: 在linux下, gnu make按照gnumakefile, makefile, makefile查詢預設描述檔案)
-i 忽略命令執行返回的出錯資訊
-s 沉默模式, 在執行前不輸出相應的命令列資訊
-r 禁止build-in規則
-n 非執行模式, 輸出所有執行命令,但不執行
-t 更新目標檔案
-q make將根據目標檔案是否更新返回0或非0
-p 輸出所有巨集定義和目標檔案描述
-d debug模式,輸出有關檔案和檢測時間的詳細資訊
在linux下, 有些選項不同於unix, 如下:
-c dir 在讀取makefile之前改變到指定的目錄dir
-i dir 當包含其他makefile時,利用改選項指定搜尋目錄
-h help文件,顯示所有的make選項
-w 在處理makefile之前和之後, 都顯示工作目錄
巨集定義將覆蓋makefile檔案種的巨集定義.
target指定要編譯的目標,並且允許同時定義多個編譯目標,執行時按照從左向右的順序依次編譯target中指定的目標檔案. 如果沒有指定target,則命令預設描述檔案(如makefile)中的第乙個目標.
makefile常用變數(gnu):
$@ 目標檔名
$< dependences中的第一項名稱
$^ 所有dependences中的項名, 各項名以空格分開
$? 所有dependences中比目標新的項名, 各項名以空格分開
"@"符號禁止列印輸出所在命令列,也就是說所有以@開頭的命令列只執行,而不被列印輸出.
(一)make之make和makefile初識
1.1 make 和makefile 1.1.1 make make 是乙個應用程式 1.1.2 makefile makefile是乙個描述檔案 1.1.3 makefile本質 makefile實際就是乙個指令碼程式,類似於shell指令碼。由於 塊中沒有make的,所以用bash來代替make...
工程管理工具make及makefile
本文 先給乙個成功以後所生成的全部檔案 1.為什麼要管理工具make和makefile 和使用連線檔案testlink相似,bc也允許把原始檔的編譯及目標檔案的連線全部工作寫成一種叫makefile的檔案,並提供了可以執行這種檔案的工具make.exe實現了所謂的自動編譯和連線 2.make工具 總...
C語言make和Makefile介紹及使用
在軟體的工程中的原始檔是不計其數的,其按照型別,功能,模組分別放在若干個目錄中,哪些檔案需要編譯,那些檔案需要後編譯,那些檔案需要重新編譯,甚至進行 更複雜的功能操作,這就引入了我們的系統編譯的工具 在linux和unix中,有乙個強大的使用程式,叫make,可以用它來管理多模組程式的編譯和鏈結,直...