2009-09-29 9 views
9

qmakeプロジェクトファイルを変更するだけで、make出力(!!)をフォーマットするにはどうすればいいですか?)。 コンパイル行は増加を続け、1行の警告/エラーはほとんど表示されなくなります。あなたは「@」でプリントアウトを抑制し、あなたが見たいものをエコーすることができますについてqmakeビルド出力をフォーマット/変更する方法

答えて

16

qmakeでは、サイレント設定オプションを追加することができます。

CONFIG += silent 

(注:。。私はそれがコマンドだと思うそれは、これに似た何か)出力の大半を抑制すべき

、あなたの警告とエラーとともに、 "aoのコンパイル"のような印刷行だけが表示されます。私はそれがエラーパーサを使用したいという多くの情報を抑制するので、あなたが、しかし、これには注意したいことがあり

(私はそれが1だと思う...)これは.SILENT.ディレクティブmakeさんに似ていると信じています。たとえば、SUBDIRS構成でコンパイルする場合、異なるディレクトリに変更されたときには出力されません。

+0

素晴らしい。まさに私が必要なもの –

0

私は

$(CC) in.ext -o out.ext 

のようなものを考えています

感謝:

簡単な例:

out.ext: $(OBJ) 
    @echo $(CC) -o out.ext 
    @$(CC) -o out.ext $(OBJ) $(OTHER_FLAGS_ETC) 
+0

私は魔法を邪魔しないようにしたい。混乱させて申し訳ありません。 –

+1

OPがqmakeを求めて –

5

さまざまなアプローチがあります。そしてそれらを設定可能にすることができます。

  • ルール内の行の前に@看板を追加場合は、コマンド自体は印刷されませんが、その出力はなります。
  • CFLAGSを追加すると、変数が1つしかありません(これは一般的なことです)、警告を見逃すことはありません。最初のビルド後にビルドが停止します。
  • コマンドの標準出力を/dev/nullにリダイレクトすることができます。これはエラーストリームのみを残します(gccは通常は出力を生成しないため、他のコマンドに役立つ可能性があります)。

残念ながら、qmakeの場合、2番目の方法が適用されます。プロジェクトファイルに追加します。

QMAKE_CFLAGS+=-Werror 
QMAKE_CXXFLAGS+=-Werror 

そして、彼らは、コンパイラを呼び出すときに生成makefileがこれらのフラグを使用しますので、ビルドは、すべての警告で停止します。


(このセクションはすぐに別の質問に移動されます)。

いつものように、あなたはそれをすべて使うことができます - あなたはそれをすべて設定することができます!次に例を示します:だから

trace?=short 

ifeq ($(trace),short) 
    [email protected] 
    redirect_to_null=1>/dev/null 

else ifeq ($(trace),full) 
    suppress_echo= 
    redirect_to_null= 

else ifeq ($(trace),werror) 
    CFLAGS+=-Werror 

else 
    $(error Incorrect trace type "$(trace)"!) 
endif 

# Thanks to Martin York for the source of this copy-pasted code 
out.ext: $(OBJ) 
    @echo $(CC) $(CFLAGS) -o out.ext $(redirect_to_null) 
    $(suppress_echo)$(CC) $(CFLAGS) -o out.ext $(OBJ) $(redirect_to_null) 

、あなたがこのようなmakeを呼び出す場合:

$ make trace=full 

を、それがすべてを印刷します。あなたは

$ make 

を起動した場合short値がデフォルトで使用されます(代わりに通常の=?=オペレータに注意してください!)とルールを使用すると多くを与えるだろう何なバージョンに

out.ext: out.o 
    @echo cc -o out.ext 1>/dev/null 
    @cc -o out.ext out.o 1>/dev/null 

を拡大していきます必要。

このようなアプローチは、設定を使用して、実動コードで使用されます。たとえば、私はUbuntuのIcedTeaメイクファイルで見ました。

+0

私は魔法を邪魔しないようにしたい。混乱させて申し訳ありません。 –

+0

+1:-Werrorの場合。これがIMOのベスト提案です。これはプロジェクトファイルで実行できます。 – Troubadour

+0

@hydroes:私の答えを編集してあなたのニーズに合うようにしてください –

関連する問題