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