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

问题描述 投票:0回答:8

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

很可能有些IDE可以做到这一点,但这对我来说不是解决方案。

gcc syntax-highlighting
8个回答
8
投票

这确实很基础,但我一直在使用 grep...

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

只是为了快速将注意力吸引到

^

指出的错误线和违规部分。

enter image description here

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

sed

 注入颜色转义序列。


5
投票
尝试使用

colorgcc Debian 软件包。 我还发现了其他三个包:Johannes Schlüter 的 colorgcc,或 这个德语包,或 这个 Sourceforge 项目


3
投票
Gcc 4.9 似乎通过 -fdiagnostics-color 标志添加了此功能:

http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#index-fdiagnostics-color-246


2
投票

warn_summary脚本非常好

您可以获取所有警告的计数、类型,也可以只打印出警告,而无需 gcc 的所有其他输出。

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

2
投票
您可以通过 grep 管道输出编译的输出:

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

0
投票
在 emacs 中编译会给你一些突出显示。据推测,细节可以定制。

使用

M-x compile

 并发出常用的构建命令(默认为 
make -k
)。



0
投票
这个答案更多的是关于重写旧 C 代码的一般方法。

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

如果您正在重构旧的 C 项目,大多数警告通常会归结为各种问题,例如旧的 K'n'R 函数 dec、以前允许的强制转换现在用警告突出显示、使用已弃用的函数等。

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

gmake 2>&1 | tee results

然后您可以查看结果文件,看看您收到的最常见的警告是什么。首先消除所有现有警告,然后再对代码库进行任何重构。

在 vim 中运行 make 为您提供了很多将错误和警告消息与源文件结合起来的可能性。

© www.soinside.com 2019 - 2024. All rights reserved.