Можно ли указать компилятору 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
. Я считаю, что с предупреждениями абсолютно необходимо обращаться как с ошибками, потому что большинство предупреждений указывают на ошибочный код.