Можно ли указать компилятору GNU c ++ останавливаться после обнаружения 5 ошибок? Не могу найти это в документации.
Ответы:
Параметр командной строки предписывает компилятору отказаться от выполнения после N ошибок. Эта опция присутствует в GCC 4.6 и новее.-fmax-errors=N
Параметр командной строки -Wfatal-errorsпредписывает компилятору отказаться от выполнения одной ошибки. Эта опция присутствует в GCC 4.0 и новее.
В обоих случаях предупреждения не учитываются при подсчете лимита, если вы не укажете другое значение -Werror.
-Wuninitializedложные срабатывания: он тратит I-кеш на мертвые, но не доказуемо мертвые инструкции хранения; и если что-то изменится, что делает предупреждение истинно положительным, мы хотим, чтобы valgrind его поймал.
-fmax-errorsфлаг (в версии arm-none-eabi-gcc 5.4.1). Я использовал опцию -finstrument-functionsи получил сотни ошибок из-за неопределенной __cyg_profile_func_enterфункции.
Вы можете использовать опцию gcc:
-fmax-errors=5
для этого.
Я бы тоже приветствовал такой вариант. На данный момент я использую следующий обходной путь, чтобы получить первые пять ошибок:
<make> 2>&1|grep error|head -5
Я должен спросить, зачем вам это нужно. Иногда ошибка, которая существует в коде, не является первой и даже не входит в число первых пяти ошибок. Иногда это выходит за рамки этого, и его можно узнать только после прокрутки списка. Лучшим методом может быть разбиение вашего кода на меньшие библиотеки, если вас беспокоит время компиляции. Или, если вас беспокоит прокрутка экрана командной строки, используйте оператор «>>» для передачи сообщений в файл.
-Werror. Я считаю, что с предупреждениями абсолютно необходимо обращаться как с ошибками, потому что большинство предупреждений указывают на ошибочный код.