我目前正在重构一个 C 项目,向我抛出了大约 1000 个警告。 有没有办法突出显示和过滤这些警告。 (例如,将所有索引警告设置为红色,未使用的警告设置为蓝色,以及其他一些警告)
很可能有些IDE可以做到这一点,但这对我来说不是解决方案。
这确实很基础,但我一直在使用 grep...
make 2>&1 | grep --color -iP "\^|warning:|error:|"
只是为了快速将注意力吸引到
^
指出的错误线和违规部分。
我发现其他方法过度使用颜色,最终会遇到同样的问题。我想你也可以用
sed
注入颜色转义序列。
colorgcc Debian 软件包。 我还发现了其他三个包:Johannes Schlüter 的 colorgcc,或 这个德语包,或 这个 Sourceforge 项目
warn_summary脚本非常好
您可以获取所有警告的计数、类型,也可以只打印出警告,而无需 gcc 的所有其他输出。
gcc <...> | tee buildoutput
warn_summary -s 0 -wpass buildoutput
warn_summary -s 0 buildoutput
make 2> error.txt; grep -e error error.txt
使用
M-x compile
并发出常用的构建命令(默认为
make -k
)。
pretty make,它可以很好地格式化 gcc 输出并为其着色。 命令选项的缩进格式非常清晰。 我最终确实破解了它,将已弃用的 popen2 交换到子进程。
大量警告通常是同一小组警告的重复,因为头文件中的一些错误被其他源代码文件包含在各处。
如果您正在重构旧的 C 项目,大多数警告通常会归结为各种问题,例如旧的 K'n'R 函数 dec、以前允许的强制转换现在用警告突出显示、使用已弃用的函数等。
假设您使用 (g)make 来构建项目,我将使用以下命令运行编译:
gmake 2>&1 | tee results
然后您可以查看结果文件,看看您收到的最常见的警告是什么。首先消除所有现有警告,然后再对代码库进行任何重构。
在 vim 中运行 make 为您提供了很多将错误和警告消息与源文件结合起来的可能性。