突出显示和过滤(gcc)编译器消息

时间:2009-06-23 12:26:42

标签: gcc compiler-construction syntax-highlighting

我正在重构一个C项目,向我发出大约1000个警告。 有没有办法突出显示和过滤这些警告。 (例如,将所有索引警告设为红色,未使用蓝色,以及其他一些)

很可能一些想法可以做到这一点,但这对我来说没有解决方案。

8 个答案:

答案 0 :(得分:6)

这是真的基本,但我一直在使用grep ......

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

只是为了快速了解^指向的错误行和违规部分。

enter image description here

我发现其他方法过度使用颜色,你最终会遇到同样的问题。我想你也可以用sed注入颜色转义序列。

答案 1 :(得分:5)

答案 2 :(得分:2)

Gcc 4.9似乎通过-fdiagnostics-color标志添加了此功能:http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#index-fdiagnostics-color-246

答案 3 :(得分:1)

warn_summary脚本非常好

您可以计算所有警告,类型,并且只打印警告而不使用gcc的所有其他输出。

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

答案 4 :(得分:1)

您可以通过grep:

管道编译的输出
make 2> error.txt; grep -e error error.txt

答案 5 :(得分:0)

在emacs中编译会给你一些突出显示。可以根据需要定制详细信息。

使用M-x compile并发出通常的构建命令(默认为make -k)。

答案 6 :(得分:0)

这个答案更多的是关于重新处理旧C代码的一般方法。

大量警告通常是重复相同的小组警告,因为其他源代码文件中包含的头文件中存在一些错误。

如果你正在重构一个旧的C项目,通常大多数警告归结为各种事情,例如旧的K'n'R函数dec,以前允许的强制转换现在用警告突出显示,使用已弃用的函数等。< / p>

假设您正在使用(g)make来构建项目,我将使用以下命令运行编译:

gmake 2>&1 | tee results

然后你可以查看结果文件,看看你得到的最受欢迎的警告是什么。在开始对代码库进行任何重构之前,先从消除所有现有警告开始。

从vim中运行make可以将错误和警告消息与源文件结合起来。

答案 7 :(得分:0)

我一直在使用pretty make,它可以很好地格式化和着色gcc输出。命令选项的缩进格式非常清楚。 我最终黑客攻击它将已弃用的popen2交换到子进程。