3

プロジェクトをコンパイルするとmultiple definition of operator<<、コンパイラからエラーが発生します。

inline QDataStream &operator<<(QDataStream &out, ValueCountPair const &pair)
{
    out << pair.value() << pair.count();
    return out;
}

確認したところ、この特定の演算子は、コード ベース全体で 1 回しか宣言および/または定義されていません。複数の定義があると表示されるのはなぜですか?

4

1 に答える 1

4

これを試してください:

  • Build -> Clean Project "YourProject" をクリックしてプロジェクトをクリーンアップします。
  • 再構築

私はこれと同じ問題を抱えていましたが、mocどういうわけかコードの複数のコピーをどこかに保持していたため、エラーが発生したと思います。qmakeプロジェクトをクリーンアップして再構築すると、 andmocプロセスによって作成されたすべてのメタコードが削除され、エラーが解消されます。

これは Qt 側のバグです。

于 2013-07-25T18:22:36.943 に答える