分享方式:


cl.exe 的傳回值

cl.exe 傳回零,代表成功 (沒有錯誤),否則即傳回非零。

如果您是從指令碼、powershell、.cmd 或 .bat 檔案進行編譯,cl.exe 的傳回值會很實用。 建議您擷取編譯器的輸出,萬一發生錯誤或警告,就可加以解決。

cl.exe 有太多可能的錯誤結束代碼,無法全部列出。 您可以在 %ProgramFiles(x86)%\Windows Kits\version\Include\shared\ 目錄中的 Windows 軟體開發工具包中查閱 winerror.h 或 ntstatus.h 檔案中的錯誤碼。 以十進位格式傳回的錯誤碼必須轉換成十六進位才能進行搜尋。 例如,錯誤碼 -1073741620 轉換為十六進位會是 0xC00000CC。 此錯誤位於ntstatus.h中,其中對應的訊息是「無法在遠端伺服器上找到指定的共享名稱」。如需可下載的 Windows 錯誤碼清單,請參閱 [MS-ERREF] Windows 錯誤碼

您也可以使用 Visual Studio 中的錯誤查詢公用程式,找出編譯器錯誤訊息代表的意義。 在 Visual Studio 命令殼層中,輸入 errlook.exe 以啟動公用程式;或在 Visual Studio IDE 的功能表欄上,選擇 [工具]、[錯誤查閱]。 輸入錯誤值,就可以找到與錯誤相關聯的描述文字。 如需詳細資訊,請參閱 ERRLOOK 參考

備註

以下範例 .bat 檔是使用 cl.exe 的傳回值。

echo off
cl /W4 t.cpp
@if ERRORLEVEL == 0 (
   goto good
)

@if ERRORLEVEL != 0 (
   goto bad
)

:good
   echo "clean compile"
   echo %ERRORLEVEL%
   goto end

:bad
   echo "error or warning"
   echo %ERRORLEVEL%
   goto end

:end

另請參閱

MSVC 編譯器命令列語法