24

いくつかの長いエラーの場合、gcc の出力は密集しており、行の折り返しなどが多数含まれています。特にエラーが微妙な場合、目を細めて解析するのに 10 ~ 30 秒かかることがあります。

これを開いているコードエディターウィンドウに貼り付けて、基本的な構文の強調表示を取得し、正規表現による再フォーマットを有効にしました。

より自動化された方法を発明した人はいますか?

4

9 に答える 9

16

次のスクリプトを使用しますcolorize

#!/bin/bash
while read x ; do echo $x ; done \
| sed -e "s/.*error:.*/\x1b[1;36m&\x1b[0m/" \
-e "s/.*warning:.*/\x1b[1;36m&\x1b[0m/" \
-e "s/^\(.*\)\(required from\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
-e "s/^\(.*\)\(In instantiation of\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
-e "s/^\(.*\)\(In member\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
| sed -e "s/error:/\x1b[1;31m&\x1b[1;36m/" \
-e "s/warning:/\x1b[1;35m&\x1b[1;36m/" \
-e "s/note:/\x1b[1;30m&\x1b[0m/"

次に、次のように呼び出します(makeまたはビルドシステムを使用):

make |& colorize

そして、clangに似たカラー出力が得られます。

于 2013-03-15T06:43:39.980 に答える
14

I've found colorgcc to be invaluable. By introducing coloring, it becomes much easier to mentally parse the text of gcc error messages, especially when templates are involved.

于 2009-03-17T23:43:34.847 に答える
9

エラーがテンプレートに関連している場合は、STLfilt を見てください。

于 2009-03-17T23:32:01.130 に答える
7

gccfilter は、メッセージの色付けと簡略化を行います。

http://www.mixtion.org/gccfilter/

于 2010-10-27T13:23:45.683 に答える
2

To answer your question 4 years later, clang should be mentioned here.

于 2013-03-28T10:19:43.020 に答える
0

Ruby が好きなら、GilCCがあります。GilCC は非常に簡単にインストールでき (bin フォルダーにコピーするだけ)、使いやすく ("gcc" または "make" の代わりに GilCC と入力するだけ)、GCC バージョンで動作します。Perl ベースのスクリプトとは異なり、 GilCCには警告やエラーの数、コンパイル時間などの統計があります。マシンで Ruby を実行できる限り、.bash ファイルをいじる必要はなく、クロスプラットフォームです。Rubyの力があるので。ビルドが成功した後、テスト自動化のトリガー、単体テスト、または外部ハードウェアのプログラムなど、さまざまなことを GilCC に実行させることができます。

ダウンロード ページへのリンクは次のとおりです: http://www.onlysolutionssoftware.com/gilcc/

于 2014-01-23T15:19:07.993 に答える