Share via


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

您還想知道關於哪些方面的詳細資訊?

Makefile 中的內嵌檔案

另請參閱

NMAKE 參考