compiling

g++がエラー時のメモを表示しないようにするにはどうしたらいいですか?

コンパイル時に、エラーが発生すると、長い注釈(シアン)が表示されることがあります。これを無効にして、エラーそのものだけを表示するg++フラグはないでしょうか?

コンパイラーはこれを行いませんが、(これまでのところ...)コンパイラー開発者は、 error: または warning: を使用して、最初の行に重要な情報を提供する他のコンパイラーから採用された長年の(30年以上)規則に従っています。警告をマークします。それらのgrepstderrを使用すると、最小限の警告/エラー情報が表示されます。

grepは良い出発点です(そして「grep-n」出力はそれ自体で役に立ちます)。これらのメッセージは、いくつかのツールに共通するファイル名、行番号、メッセージのパターンに従います。私はここでvi-like-emacsでそれを使用しました。

ごく最近(2014年)、gcc / g ++はメッセージに「呼び出しスタック」を追加し始めました。これにより、追加情報が提供されます。 -P オプション(ここに記載)でオフにできる行番号を追跡するためのプリプロセッサの変更に依存していますが、呼び出しスタックを抑制する形式で不完全に統合されているように見えます。

clangを使用しても、これにはあまり役立ちません。非常に冗長になることもあります。gcc / g ++の開発により、ここに記載されているように多くのメッセージが追加されました。




コンパイルするとき、エラーには長いトレース(シアン)が伴うことがよくあります。これを無効にするg++フラグはありますか?エラー自体のみを表示しますか?

  • STLFiltのような古くてサポートされなくなったツールを使用できます。

  • Clangに切り替えるか、Clangを使用してエラーのみを報告し、GNUg++で最終的なコンパイルを実行できます。

  • STLに慣れることで解読が容易になります。

    STLとその使用方法をよく理解すると、そもそも多くのエラーを回避するのに役立ちます。次に、エラーメッセージはSTLソースの関数を参照することがよくあります。STLの実装方法を大まかに理解している場合、これはエラーメッセージの内容を理解するのに非常に役立ちます。g ++コンパイラの最新バージョンでは、出力が改善されることがあり、より有用で冗長性が低くなります。

正確には望みませんが、出力を短くすることができます。

  • -fmax-errorsフラグまたは-Wfatal-errorsオプションを使用します。

    -fmax-errors=n

    エラーメッセージの最大数をnに制限します。この時点で、GCCはソースコードの処理を続行しようとするのではなく、ベイルアウトします。nが0(デフォルト)の場合、生成されるエラーメッセージの数に制限はありません。-Wfatal-errorsも指定されている場合、-Wfatal -errorsがこのオプションよりも優先されます。

    -Wfatal-errors

    このオプションを使用すると、コンパイルを続行してエラーメッセージを表示するのではなく、最初に発生したエラーでコンパイルを中止します。