我正在重构一个C项目,向我发出大约1000个警告。 有没有办法突出显示和过滤这些警告。 (例如,将所有索引警告设为红色,未使用蓝色,以及其他一些)
很可能一些想法可以做到这一点,但这对我来说没有解决方案。
答案 0 :(得分:6)
这是真的基本,但我一直在使用grep ......
make 2>&1 | grep --color -iP "\^|warning:|error:|"
只是为了快速了解^
指向的错误行和违规部分。
我发现其他方法过度使用颜色,你最终会遇到同样的问题。我想你也可以用sed
注入颜色转义序列。
答案 1 :(得分:5)
试试colorgcc Debian package。我找到了另外三个包:Johannes Schlüter's colorgcc,或this package in German,或this Sourceforge project
答案 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交换到子进程。