Возвращаемое программой cl.exe значение

Программа cl.exe возвращает нулевое значение в случае успешного выполнения (отсутствия ошибок) и ненулевое значение во всех остальных случаях.

Возвращаемое программой cl.exe значение может использоваться при компиляции из файла скрипта, файла powershell, CMD-файла или BAT-файла. Рекомендуется перехватывать выходные данные компилятора, чтобы при необходимости использовать их для устранения возникающих ошибок или предупреждений.

В программе cl.exe предусмотрено слишком много возможных кодов ошибок завершения cl.exe, чтобы можно было их все перечислить. Код ошибки можно найти в файлах winerror.h или ntstatus.h, включенных в пакет средств разработки программного обеспечения Windows, в каталоге %ProgramFiles(x86)%\Windows Kits\version\Include\shared\. Коды ошибок, возвращенные в виде десятичного числа, для поиска необходимо преобразовать в шестнадцатеричный вид. Например, код ошибки -1073741620 преобразуется в шестнадцатеричный код 0xC00000CC. Эта ошибка найдена в ntstatus.h, где соответствующее сообщение — "Указанное имя общей папки не удается найти на удаленном сервере". Список скачиваемых кодов ошибок Windows см. в разделе [MS-ERREF] "Коды ошибок Windows".

Для выяснения значения ошибки компилятора можно также использовать программу поиска ошибок в Visual Studio. В командной оболочке Visual Studio введите errlook.exe, чтобы запустить программу; или в интегрированной среде разработки Visual Studio в строке меню выберите "Сервис", "Поиск ошибок". Введите значение ошибки, чтобы найти связанный с ней описательный текст. Дополнительные сведения см . в справочнике по 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