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-errorsnakazuje 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.
-Wuninitializedfał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-errorsflagi (od arm-none-eabi-gcc 5.4.1). Używałem opcji -finstrument-functionsi otrzymałem setki błędów z powodu niezdefiniowanej __cyg_profile_func_enterfunkcji.
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.