2016-07-18 7 views
0

C++プログラムをコンパイルするときにエラーメッセージに直面することがありますが、解読が簡単なものもあれば、非常に長いのでかなり難しいものもあります。通常、Pythonでは、エラーメッセージの最後の文を調べることから始めます。 C++で長いコンパイラのエラーメッセージを調べるとき、どうすればよいでしょうか?C++プログラムのコンパイル時にエラーメッセージを調べ始める場所は?

+4

エラーメッセージの形式によって異なりますが、それは使用しているコンパイラによって異なります。 –

+5

最初から。警告を含む – mvidelgauz

+2

コンパイル時間は実際には要因ではないと仮定し、最初のエラーを修正してから再コンパイルします。これは、最初のエラーのためにさらに多くのエラーが発生するのを助けます。 – NathanOliver

答えて

1

おそらくスタンダードライブラリのテンプレートを誤って使用したことによるエラーがあなたを悩ませていると思います。これにはいくつかのアプローチがありますが、私のコードに関連する(長い)エラーレポートの一部を見つけ、いくつかのSTLヘッダー(たとえば、<vector>)ではないことがわかりました。次に、そこからエラーを推測し、「タイプに従う」と報告されている他のエラーに往復することができます。

そこにはいくつかの「エラーパーサ」もありますが、それらはコンパイラとそのバージョンに依存しますが、それらが有用であると感じる人もいます。 「STLFilt」は1つですが、私はそれを使ったことがないので、どれくらいいいかは分かりません。

また、CLangでコンパイルしようとすると、GCCが最近遅れを取っていますが、ほとんどのコンパイラよりもエラー報告が優れています。それはGCCとCL(Microsoft Visual C/C++コンパイラ)のための "ドロップイン"置換を持っています。

1

最初のエラーから開始してください。それらは通常最も関連しています。後のエラーは、最初のエラーによって引き起こされることが多いため、最初のエラーを取り除くと、通常、次のエラーの数が減ります。すすぎ:すべてが修正されるまで繰り返します。

複数の異なるコンパイラでコードをコンパイルすると、さまざまな方法でエラーが表示され、いくつかのエラーが他のコンパイラよりも優れた(より理解できる)エラーレポートが生成されるため便利です。異なる方法で記述された問題を理解すると、(個人的にはclang 3.8、gcc 6.1、VS2015ですべてを構築し、さまざまなエラー出力を助けるだけでなく、さまざまなコンパイラでさまざまなバグを追加することができます。

関連する問題