これは私の問題です。私はbashにビルドスクリプトを書いて、出力をteeにパイプし、さまざまな出力をさまざまなログファイルにソートします(最後にエラー/警告を要約し、ビルドされたファイルに関するいくつかの統計を得ることができます)。私はgccからの出力をcolorizeするためにcolorgcc perlスクリプト(colorgcc.1.3.2)を使いたいと思っていました。そして、スクリプトがそれが何かに書いているかどうかをチェックするので、 tty。このチェックを無効にして、完全ビルドを行い、別のグループから受け取ったコードの一部がC依存ファイルをビルドすることを発見しました(私たちはこのコードを変更せず、変更するか、オプション)。それは警告/エラーメッセージに十分近いので、
filename.o filename.d : filename.c \
colorgccのperlスクリプトで、tty以外の出力を有効にしてCの依存ファイルに書き込む
dependant_file1.h \
dependant_file2.h (and so on for however many dependencies there are)
はGCCからのこの出力は、.dのファイルに書き込まれますが、:
問題は、これらの.dファイルは次のようにフォームを持っているということですcolorgccはカラーコードを出力します(filename:lineno:message
のチェックではありますが、確かに100%ではないと確信しています)。filename:message
のチェックはGCCOUT
whileループです。私は正規表現を編集しようとしましたが、これにマッチしないようにしようとしましたが、私のperl-fuはかなり弱いです。だから、私が結んだのは、これらの依存関係ファイルの各行に色分けされたコードなので、明らかにビルドが失敗することになります。
! -t STDOUT
のチェックをNO_COLOR envarのチェックで置き換えてしまいました。これらのディレクトリのビルドスクリプトで設定を解除し、設定を解除しました(非ttyの場合は以前の動作をエミュレートします)。これは完全なスクリプトを実行すると素晴らしいですが、私がディレクトリにcdしてmakeを実行しても(明らかに手動で設定して設定を解除すると動作しますが、毎回行う苦労です)誰でも、このスクリプトがカラーコードを依存ファイルに書き込まないようにする方法はありますか?
概要を試してみましょう:スクリプトを使用して出力を色づけし、それをハックしてファイル出力用のカラーコードを生成しました(通常はそうではありません)、今度はカラーコードを取り除きたいのですか?単純な答え:あなたのハッキングを削除します。 – Olaf
Cタグの追加をやめてください。これはCとは関係なくビルドシステムです。 「C依存ファイル」はありません。 – Olaf