下面列舉了所有GNU make 3.80版的參數(shù)定義。其它Linux版本和產(chǎn)商的make大同小異,不過其它產(chǎn)商的make的具體參數(shù)還是請(qǐng)參考各自的產(chǎn)品文檔。
“-b”
“-m”
這兩個(gè)參數(shù)的作用是忽略和其它版本make的兼容性。
“-B”
“–always-make”
認(rèn)為所有的目標(biāo)都需要更新(重編譯)。
“-C
”
“–directory=”
指定讀取makefile的目錄。如果有多個(gè)“-C”參數(shù),make的解釋是后面的路徑以前面的作為相對(duì)路徑,并以最后的目錄作為被指定目錄。如:“make –C ~hchen/test –C prog”等價(jià)于“make –C ~hchen/test/prog”。
“—debug[=]”
輸出make的調(diào)試信息。它有幾種不同的級(jí)別可供選擇,如果沒有參數(shù),那就是輸出最簡(jiǎn)單的調(diào)試信息。下面是的取值:
a —— 也就是all,輸出所有的調(diào)試信息。(會(huì)非常的多)
b —— 也就是basic,只輸出簡(jiǎn)單的調(diào)試信息。即輸出不需要重編譯的目標(biāo)。
v —— 也就是verbose,在b選項(xiàng)的級(jí)別之上。輸出的信息包括哪個(gè)makefile被解析,不需要被重編譯的依賴文件(或是依賴目標(biāo))等。
i —— 也就是implicit,輸出所以的隱含規(guī)則。
j —— 也就是jobs,輸出執(zhí)行規(guī)則中命令的詳細(xì)信息,如命令的PID、返回碼等。
m —— 也就是makefile,輸出make讀取makefile,更新makefile,執(zhí)行makefile的信息。
“-d”
相當(dāng)于“–debug=a”。
“-e”
“–environment-overrides”
指明環(huán)境變量的值覆蓋makefile中定義的變量的值。
“-f=”
“–file=”
“–makefile=”
指定需要執(zhí)行的makefile。
“-h”
“–help”
顯示幫助信息。
“-i”
“–ignore-errors”
在執(zhí)行時(shí)忽略所有的錯(cuò)誤。
“-I
”
“–include-dir=”
指定一個(gè)被包含makefile的搜索目標(biāo)??梢允褂枚鄠€(gè)“-I”參數(shù)來指定多個(gè)目錄。
“-j []”
“–jobs[=]”
指同時(shí)運(yùn)行命令的個(gè)數(shù)。如果沒有這個(gè)參數(shù),make運(yùn)行命令時(shí)能運(yùn)行多少就運(yùn)行多少。如果有一個(gè)以上的“-j”參數(shù),那么僅最后一個(gè)“-j”才是有效的。(注意這個(gè)參數(shù)在MS-DOS中是無用的)
“-k”
“–keep-going”
出錯(cuò)也不停止運(yùn)行。如果生成一個(gè)目標(biāo)失敗了,那么依賴于其上的目標(biāo)就不會(huì)被執(zhí)行了。
“-l ”
“–load-average[=
“—max-load[=]”
指定make運(yùn)行命令的負(fù)載。
“-n”
“–just-print”
“–dry-run”
“–recon”
僅輸出執(zhí)行過程中的命令序列,但并不執(zhí)行。
“-o ”
“–old-file=”
“–assume-old=”
不重新生成的指定的,即使這個(gè)目標(biāo)的依賴文件新于它。
“-p”
“–print-data-base”
輸出makefile中的所有數(shù)據(jù),包括所有的規(guī)則和變量。這個(gè)參數(shù)會(huì)讓一個(gè)簡(jiǎn)單的makefile都會(huì)輸出一堆信息。如果你只是想輸出信息而不想執(zhí)行makefile,你可以使用“make -qp”命令。如果你想查看執(zhí)行makefile前的預(yù)設(shè)變量和規(guī)則,你可以使用“make –p –f /dev/null”。這個(gè)參數(shù)輸出的信息會(huì)包含著你的makefile文件的文件名和行號(hào),所以,用這個(gè)參數(shù)來調(diào)試你的makefile會(huì)是很有用的,特別是當(dāng)你的環(huán)境變量很復(fù)雜的時(shí)候。
“-q”
“–question”
不運(yùn)行命令,也不輸出。僅僅是檢查所指定的目標(biāo)是否需要更新。如果是0則說明要更新,如果是2則說明有錯(cuò)誤發(fā)生。
“-r”
“–no-builtin-rules”
禁止make使用任何隱含規(guī)則。
“-R”
“–no-builtin-variabes”
禁止make使用任何作用于變量上的隱含規(guī)則。
“-s”
“–silent”
“–quiet”
在命令運(yùn)行時(shí)不輸出命令的輸出。
“-S”
“–no-keep-going”
“–stop”
取消“-k”選項(xiàng)的作用。因?yàn)橛行r(shí)候,make的選項(xiàng)是從環(huán)境變量“MAKEFLAGS”中繼承下來的。所以你可以在命令行中使用這個(gè)參數(shù)來讓環(huán)境變量中的“-k”選項(xiàng)失效。
“-t”
“–touch”
相當(dāng)于UNIX的touch命令,只是把目標(biāo)的修改日期變成最新的,也就是阻止生成目標(biāo)的命令運(yùn)行。
“-v”
“–version”
輸出make程序的版本、版權(quán)等關(guān)于make的信息。
“-w”
“–print-directory”
輸出運(yùn)行makefile之前和之后的信息。這個(gè)參數(shù)對(duì)于跟蹤嵌套式調(diào)用make時(shí)很有用。
“–no-print-directory”
禁止“-w”選項(xiàng)。
“-W ”
“–what-if=”
“–new-file=”
“–assume-file=”
假定目標(biāo)需要更新,如果和“-n”選項(xiàng)使用,那么這個(gè)參數(shù)會(huì)輸出該目標(biāo)更新時(shí)的運(yùn)行動(dòng)作。如果沒有“-n”那么就像運(yùn)行UNIX的“touch”命令一樣,使得的修改時(shí)間為當(dāng)前時(shí)間。
“–warn-undefined-variables”
只要make發(fā)現(xiàn)有未定義的變量,那么就輸出警告信息。
聯(lián)系客服