cl.exe 的返回值

cl.exe 在成功(无错误)时返回零;否则返回非零值。

如果从脚本、powershell、.cmd 或 .bat 文件编译,则 cl.exe 的返回值很有用。 建议在出现错误或警告时捕获编译器的输出,以便能解决它们。

有太多可能的错误退出代码,cl.exe 无法将它们一一列出。 可以在 winerror.h 或 ntstatus.h 文件(包含在 %ProgramFiles(x86)%\Windows Kits\version\Include\shared\ directory 中的 Windows 软件开发工具包中)中查找错误代码。 以十进制返回的错误代码必须转换为十六进制才能搜索。 例如,错误代码 -1073741620 转换为十六进制为 0xC00000CC。 此错误位于 ntstatus.h 中,其中相应消息为“无法在远程服务器上找到指定的共享名称”。有关可下载的 Windows 错误代码列表,请参阅 [MS-ERREF] Windows 错误代码

还可使用 Visual Studio 中的错误查找实用工具来了解编译器错误消息的意思。 在 Visual Studio 命令外壳中,输入 errlook.exe 启动此实用工具;或者在 Visual Studio IDE 中的菜单栏上,选择“工具”、“错误查找”。 输入错误值以查找与错误相关的描述性文本。 有关详细信息,请参阅 ERRLOOK 参考

备注

下面是一个使用 cl.exe 的返回值的示例 .bat 文件。

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 编译器命令行语法