web-dev-qa-db-ja.com

コンパイラの出力を簡単に色分けする方法はありますか?

gcc(または他のコンパイラ)はしばしば巨大なテキスト出力を生成し、エラーがどこにあるか、警告を見逃すのは非常に困難です。私はいくつかの検索を行いましたが、コンパイラ出力を色分けするためのクリーンでシンプルなソリューションが見つかりませんでした(たとえば、警告は黄色、エラーは赤色など)

37
Ann Brown

非常に単純なものを探している場合の代替手段は次のとおりです。

#!/bin/bash -e

make ${@} 2>&1 | Perl -wln -M'Term::ANSIColor' -e '
m/Building|gcc|g++|\bCC\b|\bcc\b/ and print "\e[1;32m", "$_", "\e[0m"
or
m/Error/i and print "\e[1;91m", "$_", "\e[0m"
or
m/Warning/i and print "\e[1;93m", "$_", "\e[0m"
or
m/Linking|\.a\b/ and print "\e[1;36m", "$_", "\e[0m"
or
print; '

Makeをこのスクリプトにエイリアスし、それが実行可能であることを確認してください...

25
Reza Toghraee

Gcc 4.9はこの機能を追加したようです-fdiagnostics-colorフラグを介して:

27
akid

DebianおよびUbuntuは、そのためにcolorgccパッケージを提供します。

そして通常、gcc(およびmake)をemacsを介してM-x compileその後、メッセージは色付けされます。

補遺

GCC 4.9 にはネイティブの色付け機能があり、 GCC 6 -2016年4月末にリリースされました そしておそらく---(GCC 5 もデフォルトで有効になっています) (stdoutが端末の場合)。

15

わかりました、私はちょうど私自身の(pythonベースの)ツールについても通知を残します:)

Pluggable Output Processor と呼ばれ、特定のプログラムの出力を色付けするだけでなく設計されています。前のサンプルGCC出力は次のとおりです。

Pluggable Output Processor Before 後: Pluggable Output Processor Before

12
zaufi

colorgcc を参照してください。これは、gcc出力をクーラー化するPerlスクリプトです。

11
CharlesB

ColorMake は、GCCおよびMakeの出力を色付けし、警告とエラーを強調表示します。

Screenshot

3
Renato Silva

Colorgccをインストールして使用し、gccコンパイラーの出力を色付けする方法:

ここで少なくとも3つの回答が colorgcc に言及していますが、それらのどれもインストール方法を説明していません! (それは明らかではありません)。だから、ここにUbuntuに最新バージョンをインストールする方法があります!

  1. here に移動し、[クローンまたはダウンロード]-> [Zipのダウンロード]をクリックします。 「〜/ Downloads/Install_Files」に保存しました
  2. ファイルブラウザでそのファイルに移動し、右クリックして[ここに抽出]に移動します。 「〜/ Downloads/Install_Files/colorgcc-master」というディレクトリができました。
  3. 「colorgcc.pl」スクリプトを「/ usr/bin/colorgcc」にコピーして「インストール」します(上記で抽出した場所に応じて正しいディレクトリを使用してください):Sudo cp ~/Downloads/Install_Files/colorgcc-master/colorgcc.pl /usr/bin/colorgcc
  4. 実行可能にする:Sudo chmod +x /usr/bin/colorgcc
  5. 「〜/ bin」ディレクトリが存在しない場合は作成します:mkdir ~/bin
  6. *「/ usr/bin/colorgcc」を指すシンボリックリンクを作成して、gccまたはg++を呼び出すたびに、代わりにcolorgccを自動的に呼び出すようにします:
    • ln -s /usr/bin/colorgcc ~/bin/g++
    • ln -s /usr/bin/colorgcc ~/bin/gcc
    • (何らかの理由でcolorgccをアンインストールしたい場合は、これらのシンボリックリンク「〜/ bin/g ++」と「〜/ bin/gcc」、およびPerlスクリプト「/ usr/bin/colorgcc」を削除するだけです。 )
  7. できた!

以下は、g++を呼び出したときのg++ -Wall -std=c++11 time_until_overflow_2.cpp -o time_until_overflow_2出力のサンプルです。

enter image description here

*注意:これらのシンボリックリンクを「〜/ bin」に作成するのは、フォルダの場所beforeのPATH変数に「〜/ bin」が含まれる場合のみです。実際のgccおよびg++実行可能ファイルがある場所。パスに「〜/ bin」があることを確認するには、echo $PATHでPATH変数の内容を表示できます。パスの先頭に「/ home/YOUR_USERNAME/bin」が表示されない場合は、export PATH=~/bin:$PATHで追加してください。

参照:

詳細はこちらをご覧ください。そして、私が最初にこれらの手順のほとんどを学んだ場所については、 https://imranfanaswala.wordpress.com/2009/02/02/setting-up-colorgcc/ 。イムラン・ファナスワラに感謝します!

[〜#〜] gs [〜#〜]

1
Gabriel Staples

GilCC を使用できます。これは、RubyリアルタイムでGCC出力を色に変換するツールです。現在、Perlスクリプト(colorGCC)またはGilCCを使用していて、すでにRuby=.

GilCCに固有; GilCCには警告カウンターとエラーカウンターがあり、コンパイル時間も表示されます。これは、物事を改善しようとしているときに非常に便利です。 Rubyであるため、クロスプラットフォームです。柔軟性があり、必要に応じてgemを追加してカスタマイズできます。

ダウンロードページへのリンクはこちらです。

https://github.com/gilmotta/GilCC

0
Gilson

GCC 4.9には、端末への色付き出力を有効にする-fdiagnostics-colorオプションがありますが、色付きのコンパイラ出力を取得するために ' crror 'という小さなツールを作成しました。

makeからの出力もサポートします。必要に応じて、他のツールに色付けパターンを追加できます。

0
Takashi Oguma