hoge diary - June 30, 2005

[PC環境改善] colorgcc

colorgcc なるソフトウェアがありました.

スクリーンショットが示すように,gcc の出力にエスケープシーケンスを付加するものです.

早速インストールしてみます.

% sudo emerge colorgcc
% ls -lF /usr/lib/colorgcc/bin/
合計 0
lrwxrwxrwx  1 root root 17  6月 30 01:55 c++ -> /usr/bin/colorgcc*
lrwxrwxrwx  1 root root 17  6月 30 01:55 cc -> /usr/bin/colorgcc*
lrwxrwxrwx  1 root root 17  6月 30 01:55 g++ -> /usr/bin/colorgcc*
lrwxrwxrwx  1 root root 17  6月 30 01:55 gcc -> /usr/bin/colorgcc*
lrwxrwxrwx  1 root root 17  6月 30 01:55 i686-pc-linux-gnu-c++ -> /usr/bin/colorgcc*
lrwxrwxrwx  1 root root 17  6月 30 01:55 i686-pc-linux-gnu-g++ -> /usr/bin/colorgcc*
lrwxrwxrwx  1 root root 17  6月 30 01:55 i686-pc-linux-gnu-gcc -> /usr/bin/colorgcc*

なお,colorgcc 自体は短い Perl スクリプトのようです./usr/lib/colorgcc/bin にインストールされたようなので,環境変数 PATH を設定して完了です.

無事完了と思ったら... 警告メッセージの色がエラーメッセージと同じ色で出力されます.

そうです.原因は LANG=ja_JP.eucJP です.メッセージが日本語で出力されたため,colorgcc が用いた正規表現で一致しなかったのです.

colorgcc 自体を書き換えてもいいんですけど,バージョンアップの度に直すのも面倒なので,環境変数 LANG=C としてから colorgcc を呼び出すラッパースクリプトを PATH の通った場所に置くことにしました.

#!/bin/sh

LANG=C /usr/lib/colorgcc/bin/`basename $0` $*

このスクリプトのファイル名を g++ として,次はシンボリックリンクを作成します.

% ln -s g++ gcc
% ln -s g++ c++
% ln -s g++ cc

まだ終わりではありません.このままではこのラッパースクリプトが無限に呼び出されてしまうので,~/.colorgccrc を編集し,呼び出すコンパイラの場所を指定します.

g++: /usr/bin/g++
gcc: /usr/bin/gcc
c++: /usr/bin/c++
cc:  /usr/bin/cc

これで解決しました.

コメント

名前(何でも可):

テキスト(http:// を含む内容は投稿できません):

トラックバック

トラックバック URI: https://www.pakunet.jp/hoge/trackback/2005063001

トラックバックはありません.


Valid XHTML 1.1! Valid CSS!
© 2004-2009 ぱくちゃん.
Last modified: Thu Nov 01 01:16:51 JST 2007