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ź errlook.exe , aby uruchomić narzędzie. Lub na pasku menu programu Visual Studio na pasku menu 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