執行 NMAKE
語法
NMAKE
[option ...][巨集 ...][targets ...][@
command-file ...]
備註
NMAKE 只會建置指定的 目標,或在未指定任何目標 時,建立makefile中的第一個目標。 第一個 makefile目標可以是建置其他目標的虛擬目標 。 NMAKE 使用以 /F
指定的 makefiles,如果 /F
未指定,則為目前目錄中的 Makefile 檔案。 如果未指定makefile,它會使用推斷規則來建置命令行 目標。
命令 檔 文字檔(或回應檔)包含命令行輸入。 其他輸入可以在 @command-file 之前或之後。 允許路徑。 在命令行檔案中,換行符會被視為空格。 如果巨集定義包含空格,請以引弧括住。
NMAKE 選項
下表說明 NMAKE 選項。 選項前面有斜線 (/
) 或虛線 (-
),且不區分大小寫。 使用 !CMDSWITCHES
來變更makefile或中的 Tools.ini
選項設定。
選項 | 目的 |
---|---|
/A |
強制建置所有已評估的目標,即使與相依項目不過期也一樣。 不強制建置不相關的目標。 |
/B |
即使時間戳相等,仍強制建置。 建議只用於快速系統(解析度為兩秒以下)。 |
/C |
隱藏預設輸出,包括非嚴重 NMAKE 錯誤或警告、時間戳和 NMAKE 著作權訊息。 隱藏所 /K 發出的警告。 |
/D |
顯示每個評估目標與相依的時間戳,以及目標不存在時訊息。 適用於 /P 偵錯makefile。 使用 !CMDSWITCHES 來設定或清除 /D makefile的一部分。 |
/E |
導致環境變數覆寫makefile 巨集定義。 |
/ERRORREPORT [ NONE SEND | | PROMPT | QUEUE ] |
已取代。 Windows 錯誤報告 (WER) 設定控制報告。 |
/F 檔案名稱 |
將 檔名 指定為makefile。 空格或索引標籤可以在檔名之前。 針對每個makefile指定 /F 一次。 若要從標準輸入提供makefile,請為檔名指定虛線 (- ),並使用 F6 或 CTRL+Z 指定結束鍵盤輸入。 |
/G |
顯示 隨附於 指示詞的 !INCLUDE Makefiles。 如需詳細資訊,請參閱 Makefile前置處理指示詞。 |
/HELP , /? |
顯示 NMAKE 命令行語法的簡短摘要。 |
/I |
忽略所有命令的結束代碼。 若要設定或清除 /I makefile 的一部分,請使用 !CMDSWITCHES 。 若要忽略 makefile 部分的結束代碼,請使用虛線 (- ) 命令修飾詞 或 .IGNORE 。 如果同時指定兩者,則覆 /K 寫 。 |
/K |
如果命令傳回錯誤,請繼續建置不相關的相依性。 也會發出警告,並傳回 1 的結束代碼。 根據預設,如果有任何命令傳回非零結束代碼,NMAKE 就會停止。 /K 的警告會由 /C 隱藏;/I 如果同時指定兩者,則會覆/K 寫 。 |
/N |
顯示但不執行命令;會執行前置處理命令。 不會在遞迴 NMAKE 呼叫中顯示命令。 適用於偵錯makefiles和檢查時間戳。 若要設定或清除 /N makefile 的一部分,請使用 !CMDSWITCHES 。 |
/NOLOGO |
隱藏 NMAKE 著作權訊息。 |
/P |
將資訊(巨集定義、推斷規則、目標、 .SUFFIXES 清單)顯示至標準輸出,然後執行組建。 如果沒有makefile或命令行目標存在,只會顯示資訊。 使用搭配 /D 來偵錯 makefile。 |
/Q |
檢查目標的時間戳;不會執行組建。 如果所有目標都是最新的,則傳回零結束代碼,如果有任何目標過期,則傳回非零結束代碼。 會執行前置處理命令。 從批處理檔執行 NMAKE 時很有用。 |
/R |
清除 .SUFFIXES 清單,並忽略檔案或 Tools.ini 預先定義的推斷規則和巨集。 |
/S |
隱藏執行命令的顯示。 若要隱藏 makefile 的一部分顯示,請使用 @ 命令修飾詞 或 .SILENT 。 若要設定或清除 /S makefile 的一部分,請使用 !CMDSWITCHES 。 |
/T |
更新命令行目標的時間戳(或第一個 makefile 目標),並執行前置處理命令,但不會執行組建。 |
/U |
必須與 /N 搭配使用。 傾印內嵌 NMAKE 檔案,以便 /N 將輸出當做批處理檔使用。 |
/X 檔案名稱 |
將 NMAKE 錯誤輸出傳送至 檔案名 ,而不是標準錯誤。 空格或索引標籤可以在檔名之前。 若要將錯誤輸出傳送至標準輸出,請指定檔名的虛線 (- )。 不會影響命令輸出至標準錯誤。 |
/Y |
停用批次模式推斷規則。 選取此選項時,所有批次模式推斷規則都會被視為一般推斷規則。 |
Tools.ini 和 NMAKE
NMAKE 會在讀取 makefiles 之前讀取 Tools.ini
,除非 /R
使用。 它會先在目前目錄中尋找 Tools.ini
,然後在 INIT 環境變數所指定的目錄中尋找 。 初始化檔案中 NMAKE 設定的 區段會以 開頭 [NMAKE]
,而且可以包含任何 makefile 資訊。 在以數字元號 (#
) 開頭的個別行上指定批注。
NMAKE 的結束代碼
NMAKE 會傳回下列結束代碼:
代碼 | 意義 |
---|---|
0 | 沒有錯誤(可能是警告) |
1 | 未完成的組建(只有在使用時才 /K 發出) |
2 | 程式錯誤,可能是下列其中一個問題所造成: - makefile 中的語法錯誤 - 命令的錯誤或結束代碼 - 用戶中斷 |
4 | 系統錯誤 - 記憶體不足 |
255 | 目標不是最新的(只有在使用時才 /Q 發出) |