Wartość zwracania cl.exe

Program cl.exe zwraca 0 w przypadku sukcesu (bez błędów) i wartość różną od zera w przeciwnym razie.

Wartość zwracana przez cl.exe może być przydatna, jeśli kompilujesz z pliku skryptu, powershell, .cmd lub .bat. Zaleca się przechwycenie danych wyjściowych kompilatora w przypadku błędów lub ostrzeżeń, tak aby można je było rozwiązać.

Istnieje zbyt wiele możliwych kodów wyjścia błędów dla cl.exe, aby je wszystkie wymienić. Kod błędu można wyszukać w plikach winerror.h lub ntstatus.h dołączonych do zestawu Windows Software Development Kit w katalogu %ProgramFiles(x86)%\Windows Kits\version\Include\shared\. Kody błędów zwracane w zapisie dziesiętnym muszą zostać przekonwertowane na format szesnastkowy, aby możne je było wyszukać. Na przykład, kod błędu -1073741620 przekonwertowany na liczbę szesnastkową to 0xC00000CC. Ten błąd występuje w pliku ntstatus.h, gdzie odpowiedni komunikat to "Nie można odnaleźć określonej nazwy udziału na serwerze zdalnym". Aby uzyskać listę kodów błędów systemu Windows do pobrania, zobacz [MS-ERREF] Kody błędów systemu Windows.

Możesz też użyć narzędzia wyszukiwania błędów w Visual Studio, aby się dowiedzieć, co oznacza komunikat o błędzie kompilatora. W powłoce poleceń programu Visual Studio wprowadź plik errlook.exe , aby uruchomić narzędzie. Lub na pasku menu programu Visual Studio wybierz pozycję Narzędzia, Wyszukiwanie błędów. Wprowadź wartość błędu, aby znaleźć opisowy tekst skojarzony z błędem. Aby uzyskać więcej informacji, zobacz ERRLOOK Reference (Dokumentacja ERRLOOK).

Uwagi

Oto przykładowy plik .bat, używający wartości zwracanej przez 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

Zobacz też

Składnia wiersza polecenia kompilatora MSVC