Как быстро добраться до первого сообщения об ошибке компилятора в терминале? - PullRequest
1 голос
/ 06 февраля 2020

Я чувствую, что это обычный вопрос, но я ничего не мог найти по нему. Часто, когда я компилирую программу, у меня появляется длинный список ошибок компиляции, и мне приходится прокручиваться в терминале, чтобы найти первую ошибку. Это довольно утомительно, и иногда я прокручиваю первую ошибку, не замечая этого. Есть ли более быстрый способ навигации?

1 Ответ

0 голосов
/ 08 апреля 2020

Terminal-speci c подход:

$ clear && make

Затем используйте комбинацию клавиш Shift + Home , чтобы прыгнуть на вершину. Этот ярлык может быть доступен не для всех консолей. Похоже, работает для gnome-Terminal и Agetty. Кажется, он не работает для xterm, но я предполагаю, что такие консоли можно настроить для добавления ярлыка (например, для xterm см. link ).

подход к компилятору c подход :

Кроме того, вы можете использовать механизмы компилятора для ограничения количества отображаемых ошибок. И clang, и g cc поддерживают -Wfatal-errors для выхода при первой ошибке (не путать с -Werror, который превращает предупреждения в ошибки). Со страницы g cc man:

       -Wfatal-errors
           This option causes the compiler to abort compilation on the first
           error occurred rather than trying to keep going and printing
           further error messages.

Выход при первой ошибке может быть бесполезным в некоторых случаях (т. Е. При отсутствии какого-либо заголовка может возникнуть ошибка об отсутствии ; перед ошибка, сообщающая, какой идентификатор не определен). По этой причине может быть более полезным ограничить количество ошибок. Для g cc есть -fmax-errors=n (для clang -ferror-limit=n) для отображения не более n ошибок. Вы можете настроить его на небольшое число, которое позволяет вам видеть все ошибки сразу, без прокрутки.

       -fmax-errors=n
           Limits the maximum number of error messages to n, at which
           point GCC bails out rather than attempting to continue
           processing the source code.  If n is 0 (the default), there is
           no limit on the number of error messages produced.  If
           -Wfatal-errors is also specified, then -Wfatal-errors takes
           precedence over this option.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...