Makefile 中的命令
描述區塊或推斷規則會指定要在相依性過期時執行的命令區塊。 NMAKE 會在執行之前先顯示每個命令,除非 /S
使用 、 .SILENT
!CMDSWITCHES
或 @
。 如果描述區塊後面沒有命令區塊,NMAKE 會尋找相符的推斷規則。
命令區塊包含一或多個命令,每個命令都位於自己的行上。 相依性或規則與命令區塊之間不會顯示空白行。 不過,只顯示包含空格或索引標籤的行;這一行會解譯為 Null 命令,而且不會發生任何錯誤。 命令列之間允許空白行。
命令列的開頭為一或多個空格或索引標籤。 反斜線 ( \
) 後面接著分行符號,會解譯為命令中的空格。 使用行尾的反斜線,將命令繼續下一行。 NMAKE 會以常值方式解譯反斜線,如果任何其他字元,包括空格或索引標籤,則遵循反斜線。
前面有分號 ( ;
) 的命令可以出現在相依性行或推斷規則上,無論命令區塊是否遵循:
project.obj : project.c project.h ; cl /c project.c
命令修飾詞
您可以在命令前面指定一或多個命令修飾詞,選擇性地以空格或索引標籤分隔。 如同命令,修飾詞必須縮排。
修飾詞 | 目的 |
---|---|
@ 命令 |
防止顯示命令。 不會隱藏命令顯示。 根據預設,NMAKE 會回應所有執行的命令。 使用 /S 來隱藏整個 makefile 的顯示;使用 .SILENT 來隱藏 makefile 部分的顯示。 |
- [ number ] 命令 |
關閉命令 的錯誤檢查 。 根據預設,當命令傳回非零結束代碼時,NMAKE 會停止。 如果使用 -number,NMAKE 會在結束代碼超過 數位 時停止。 虛線和 數位之間無法顯示空格或索引標籤。 至少有一個空格或索引標籤必須出現在數位 和 命令 之間 。 使用 /I 關閉整個 Makefile 的錯誤檢查;使用 .IGNORE 來關閉 makefile 部分的錯誤檢查。 |
! 命令 |
如果命令使用 (相依性中的所有相依檔案)或 $? (相依性中的所有相依檔案,且相依性中具有比目標晚時間戳記的相依檔案),則執行每個相依檔案的命令 。 $** |
Filename-parts 語法
命令中的 Filename-parts 語法代表第一個相依檔名的元件(這可能是隱含相依專案)。 檔案名元件是檔案的磁片磁碟機、路徑、基底名稱和副檔名,而不是磁片上存在。 使用 %s
來表示完整檔案名。 使用 %|
[ parts ] F
(垂直橫條字元遵循百分比符號)來代表檔案名的一部分,其中 元件 可以依任何順序為零或多個下列字母。
信件 | 描述 |
---|---|
沒有字母 | 完整名稱 (與 %s 相同) |
d |
磁碟機 |
p |
路徑 |
f |
檔案基底名稱 |
e |
副檔名 |
例如,如果檔案名為 c:\prog.exe
:
%s
成為c:\prog.exe
%|F
成為c:\prog.exe
%|dF
成為c
%|pF
成為c:\
%|fF
成為prog
%|eF
成為exe
您還想知道關於哪些方面的詳細資訊?
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應