Czy można poinstruować kompilator GNU c ++, aby zatrzymał się po znalezieniu 5 błędów? Nie mogę znaleźć tego w dokumentacji.
Odpowiedzi:
Opcja wiersza poleceń nakazuje kompilatorowi zrezygnować po N błędach. Ta opcja jest dostępna w GCC 4.6 i nowszych.-fmax-errors=N
Opcja wiersza polecenia -Wfatal-errors
nakazuje kompilatorowi zrezygnowanie po jednym błędzie. Ta opcja jest dostępna w GCC 4.0 i nowszych.
W obu przypadkach ostrzeżenia nie wliczają się do limitu, chyba że określisz również -Werror
.
-Wuninitialized
fałszywe alarmy, to: marnuje pamięć podręczną I-cache na martwe, ale niemożliwe do udowodnienia, martwe instrukcje; a jeśli coś się zmieni, co sprawi, że ostrzeżenie stanie się naprawdę pozytywne, chcemy, aby Valgrind je złapał.
-fmax-errors
flagi (od arm-none-eabi-gcc 5.4.1). Używałem opcji -finstrument-functions
i otrzymałem setki błędów z powodu niezdefiniowanej __cyg_profile_func_enter
funkcji.
Możesz użyć opcji gcc:
-fmax-errors=5
w tym celu.
Byłbym również zadowolony z takiej opcji. Na razie używam następującego obejścia, aby uzyskać pierwsze pięć błędów:
<make> 2>&1|grep error|head -5
Muszę zapytać, dlaczego chcesz to zrobić. Czasami błąd, który istnieje w kodzie, nie jest pierwszym, ani nawet nie występuje w pierwszych pięciu błędach. Czasami jest poza tym i jest rozpoznawalny dopiero po przewinięciu listy. Lepszą metodą może być rozbicie kodu i umieszczenie go w mniejszych bibliotekach, jeśli przeszkadzają Ci czasy kompilacji. Lub jeśli martwisz się przewijaniem z ekranu wiersza poleceń, użyj operatora „>>”, aby przesłać komunikaty do pliku.
-Werror
. Uważam, że ostrzeżenia absolutnie należy traktować tak, jakby były błędami, ponieważ większość ostrzeżeń wskazuje na błędny kod.