2016-12-28 6 views
2

Eclipse CDT Indigoとg ++(Debian 4.9.2-10)4.9.2でプロジェクトをコンパイルすると、多くの警告があります。 hereから、いくつかのEclipseパーサのバグ、おそらくいくつかの外部ライブラリのバグによって説明されるかもしれません。gccコンパイルログで警告タイプを特定して無効にするにはどうすればいいですか?

私はもちろんEclipseをアップグレードしますが、今はできません。

私はこれらの厄介な警告を抑制したいと思います。マニュアルhereを読みましたが、設定するオプションを特定する方法はまだわかりません。 Eclipseで-Wallオプションのチェックを外しましたが、何も変更されていません。すべてのEclipseの警告は現在無効になっています。

私のコンパイルログにはpastbinがあります。

+0

コマンドラインからgccを使用します。 Eclipseはコンパイラの出力を不可解な混乱に変えました。私はそれについて警告するものを見つけることさえできません。私にとって、これらのメッセージは、警告ではなくgcc **エラー**の断片のように見えます。 –

+0

1)コマンドラインから全く同じものを取得しました.2)エラーキーワードがありません。3)オブジェクトファイルがビルドされ、実行ファイルがリンクされています。 – lalebarde

+0

'make'の中に何かがコンパイル出力を除外しなければなりません。 'make'を使わずに単一の' g ++ 'コマンドを実行してみてください。注意すべきは、 'warning'キーワードもありません。 –

答えて

1

実際の警告行為を食べたようです。すべてのgcc警告には少なくとも1行に "warning"という単語があります。いくつかはgccのビルド

EDITは実際に同様のメッセージ(ライン「からインスタンス化」行、「から必要な」「ノート」行、...しかし、実際の「エラー」または「警告」の行)を産生します。 gccにバグがあるようです。 - 終了編集。

すべてのgcc警告のうち、私は過負荷に関連するものだけを知っていて、候補機能をリストする「メモ」サブメッセージを持っています。警告が読み込み

C++は、これらが最初は

のための最悪の変換よりも良いとそれであるため、最悪の変換はをオフにすることができないにもかかわらず、曖昧であることを述べています。このような警告が表示された場合、プログラムは非準拠であり、修正する必要があります。

このような準拠しないコードの例を次に示します。関数のシグネチャがあなたにマッチして:第二operator()constを作る

#include <string> 

struct KeyWord 
{ 
    KeyWord(const std::string&); 
    operator std::string&() const; 
}; 

struct A 
{ 
    bool operator() (const std::string&, const std::string&) const; 
    bool operator() (const KeyWord&, const KeyWord&); 
}; 

int main() 
{ 
    A a; 
    std::string s; 
    const std::string r; 
    a(s, r); 
} 

問題を解決します。

+0

あなたの答えは「それをオフにすることはできません。残りの部分については、私のMCVEは[ここ](http://stackoverflow.com/questions/41384434/how-to-solve-ambiguity-in-operator-overloading-embedded-inside-a-struct/41384469#41384469)です。私はあなたのconstソリューションを試しましたが、成功しませんでした。それは最初の質問に直接関係していないので、私はそれについて専用の質問を開いた。 – lalebarde

+0

今私はそれをすべて理解しています。ありがとう。 – lalebarde

関連する問題