c++ - Qt项目中operator<<的多重定义

标签 c++ qt operator-overloading

在编译我的项目时,我得到一个 multiple definition of operator<<来自编译器的错误。

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

我已经检查过,这个特定的运算符在我的整个代码库中只声明和/或定义了一次。为什么说我有多个定义?

最佳答案

尝试这样做:

  • 点击构建 -> 清理项目“YourProject”清理你的项目
  • 重建

我遇到了同样的问题,我认为 moc 以某种方式在某处保留了我的代码的多个拷贝,从而导致错误。当您清理并重建项目时,它会删除 qmakemoc 过程创建的所有元代码,从而清除错误。

这是 Qt 的一个错误。

关于c++ - Qt项目中operator<<的多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865851/

相关文章:

C++ 获取函数参数的字节数

python - Qt - 格式化要在样式表中使用的 QColor?

C++ Qt : Static builds and external dylibs

c++ - 你能把 operator+ 换边吗

c++ - 运算符重载的基本规则和惯用法是什么?

c++ - 二进制 'operator' : no operator defined which takes a left-hand operand of type 'type' (or there is no acceptable conversion)

c++ - cocos2d-x 中的渲染循环

c++ - Visual Studio 2013 中的 LibCurl 静态链接器错误,即使在包含必要的依赖项之后也是如此

c++ - 在 C++ 中分配时,我们分配的对象是否被破坏?

c++ - QImage::load 导致应用程序崩溃