2016-05-17 9 views
0

私は出力に何かを書くために情報を使用していますが、エラーがあるかどうかをチェックしています。出力に表示されるのは、複数の$(info関数は$(エラー出力は必ずしも終わりではない)時々でさえ、makeプロセスの速さに依存します。すべての$ ?。(情報が処理されます

Exmaple: 
$(info a) 
$(info a) 
$(info a) 
$(info a) 
$(error ERROR) 

Output 1: 
a 
a 
a 
a 
ERROR 

Output 2: 
a 
a 
ERROR 
a 
a 

答えて

2

info出力はstdoutに行き、error出力がstderrに行くデフォルトの標準出力によってバッファされ、標準エラー出力がバッファリングされていない、彼らは異なって現れる理由ですあなたはどのバージョン言いませんあなたが使っているGNUのものですが、新しいバージョンにアップグレードすると私は信じていますすべての書き込みの後でstdoutとstderrの両方をフラッシュしますので、この問題は表示されなくなります(GNU make 4.0から始めます)。

stdbufのようなツールを使用することもできます。このツールは、GNU/Linuxシステムの場合はすでにシステムにインストールされている可能性があります。