5つのエラーが見つかった後に停止するようにGNUc ++コンパイラに指示することは可能ですか?ドキュメントでこれを見つけることができません。
回答:
コマンドラインオプションは、N個のエラーの後であきらめるようにコンパイラに指示します。このオプションは、GCC4.6以降に存在します。-fmax-errors=N
コマンドラインオプション-Wfatal-errors
は、1つのエラーの後であきらめるようにコンパイラに指示します。このオプションはGCC4.0以降にあります。
どちらの場合も、を指定しない限り、警告は制限にカウントされません-Werror
。
-Wuninitialized
誤検知を取得する変数を初期化しないことについて私が聞いた議論は次のとおりです。そして、警告を真にポジティブにする何かが変わった場合、valgrindにそれをキャッチしてもらいたいのです。
-fmax-errors
フラグを尊重しません(arm-none-eabi-gcc 5.4.1以降)。オプション-finstrument-functions
を使用していましたが、__cyg_profile_func_enter
関数が定義されていないために何百ものエラーが発生しました。
gccオプションを使用できます:
-fmax-errors=5
この目的のために。
私もそのようなオプションを歓迎します。今のところ、最初の5つのエラーを取得するために次の回避策を使用しています。
<make> 2>&1|grep error|head -5
私はあなたがこれをしたい理由を尋ねなければなりません。コードに存在するエラーが最初ではない場合や、最初の5つのエラーで見つかった場合もあります。時にはそれを超えており、リストを下にスクロールして初めて認識できます。コンパイル時間に悩まされている場合は、コードを分割して小さなライブラリに配置することをお勧めします。または、コマンドラインの画面からスクロールすることに関心がある場合は、「>>」演算子を使用してメッセージをファイルにパイプします。
-Werror
。ほとんどの警告はバグのあるコードを示しているため、警告はエラーであるかのように絶対に扱う必要があると思います。