PowerShell で直接コマンドを実行してmingw32-make
、C プロジェクトをビルドしています。
ただし、出力が完全に乱れることがあります。たとえば、1 行の一部が別の行に挿入されるなどです。これにより、出力の読み取りが不可能になる場合があります。
2 回の実行間で出力は一貫しているようです。つまり、特定のプロジェクト状態では常に同じめちゃくちゃな出力が生成されます。
出力を txt ファイルにダンプしようとしましたmingw32-make > log.txt
。テキスト ファイルには明確な出力が表示されますが、エラー レポートがすべて表示されません。実際のエラー レポートはなく、「コンパイル エラー」とだけ表示されます。
これを修正するにはどうしたらいいでしょうか?
答え1
あなたが説明している内容は、mingw32-make
複数のストリームに送信するということのようです。このように出力を混ぜることは、ミックスしWrite-Host
てWrite-Output
呼び出したときに起こることと似ています。1番目は[多かれ少なかれ]直接ホストに送られますが、2番目は成功ストリームに送られ、それからホストへ。
最も簡単な解決策は、すべてのストリームをファイルにリダイレクトするか、必要なストリームとTee-Object
結果を画面とファイルに結合することです。[ニヤリ]
Get-Help about_Redirection
詳細についてはこちらをご覧ください。
を使用しているのがわかりますmingw32-make 2>&1 > log.txt
。特定のユーティリティをテストする方法がないため、特定のストリームを指定できませんでした。すべてのストリームをリダイレクトする を選択したと思いますmingw32-make *> log.txt
。やり過ぎを避けるという点で、あなたのパターンの方が優れています。