2009-06-23 2 views
3

Я в настоящее время реорганизую C-проект, бросая на меня около 1000 предупреждений. есть способ выделить и отфильтровать эти предупреждения. (например, сделать все предупреждения с индексами красными, неиспользованными синими и некоторыми другими)сообщения компилятора highlight и filter (gcc)

скорее всего некоторые из них могут это сделать, но это не решение для меня.

ответ

0

Компиляция в emacs дает вам некоторые подсветки. Предположим, что детали поддаются настройке.

Используйте команду M-x compile и выдайте вам обычную команду сборки (по умолчанию make -k).

0

Этот ответ больше подходит для общего подхода к переработке старого кода на языке C.

Большие объемы предупреждений, как правило, являются повторениями одной и той же небольшой группы предупреждений из-за некоторых ошибок в заголовочных файлах, которые во всех других местах содержатся в других файлах исходного кода.

Если вы реорганизуете старый проект на C, нередко большинство предупреждений сводятся к различным вещам, таким как функция старого K'n'R dec, ранее разрешенные броски теперь выделяются предупреждением, используя устаревшие функции и т. Д.

Предполагая, что вы используете (г) сделать для создания проекта, я бы запустить компиляцию с помощью следующей команды:

gmake 2>&1 | tee results 

Тогда вы можете посмотреть на файл результатов и посмотрим, какие самые популярные предупреждения, которые вы получаете. Начните с устранения всех существующих предупреждений, прежде чем перейти к рефакторингу базы кода.

Запуск make изнутри vim дает вам множество возможностей для соединения сообщений об ошибках и предупреждения с исходными файлами.

1

warn_summary сценария довольно хороший

Вы можете получить количество всех предупреждений, тип, а также просто распечатать предупреждения без все остального выхода из НКИ.

gcc <...> | tee buildoutput 
warn_summary -s 0 -wpass buildoutput 
warn_summary -s 0 buildoutput 
0

Я использую pretty make, который форматирует и окрашивает Gcc выход красиво. Формат отступов для параметров команд очень ясен. Я в конечном итоге взломал его, чтобы заменить устаревший popen2 на подпроцесс.

1

Вы могли конвейер вывод вашей компиляции через Grep:

make 2> error.txt; grep -e error error.txt 
5

Это действительно основных, но я использую grep ...

make 2>&1 | grep --color -iP "\^|warning:|error:|" 

только быстро привлечь внимание к линии ошибки и обижая раздел, на который указывает ^.

enter image description here

Я нашел другие методы по использованию цвета, и вы в конечном итоге с той же проблемой. Я думаю, вы могли бы также вводить цветовые escape-последовательности с sed.