Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-34479

build with msvc2008 fails with error C2678: binary '==' : no operator found

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • 5.2.0
    • 5.2.0 Beta1
    • Multimedia
    • None
    • Windows 7 (64-bit), Visual Studio 2008
    • 4edc0cc3b9d7e56e59eab64d0576e8fd511c27c4

    Description

      Building from git with msvc2008 fails with:

      directshowsamplescheduler.cpp
      directshowvideorenderercontrol.cpp
      mediasamplevideobuffer.cpp
      E:\opensource\qt5-src-5.2.0\qtmultimedia\src\plugins\directshow\player\directshowmetadatacontrol.cpp(392) : error C2678: binary '==' : no operator found which takes a left-hand operand of type 'PROPERTYKEY' (or there is no acceptable conversion)
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qbytearray.h(537): could be 'bool operator ==(const QByteArray &,const QByteArray &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qbytearray.h(539): or 'bool operator ==(const QByteArray &,const char *)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qbytearray.h(541): or 'bool operator ==(const char *,const QByteArray &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qchar.h(513): or 'bool operator ==(QChar,QChar)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(576): or 'bool operator ==(const QString &,const QString &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(635): or 'bool operator ==(const char *,const QString &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(642): or 'bool operator ==(const char *,const QStringRef &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(988): or 'bool operator ==(QString::Null,QString::Null)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(989): or 'bool operator ==(QString::Null,const QString &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(990): or 'bool operator ==(const QString &,QString::Null)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(995): or 'bool operator ==(QLatin1String,QLatin1String)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(1052): or 'bool operator ==(const char *,QLatin1String)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(1330): or 'bool operator ==(const QStringRef &,const QStringRef &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(1333): or 'bool operator ==(const QString &,const QStringRef &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(1336): or 'bool operator ==(const QStringRef &,const QString &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(1340): or 'bool operator ==(QLatin1String,const QStringRef &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qstring.h(1343): or 'bool operator ==(const QStringRef &,QLatin1String)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qsize.h(83): or 'bool operator ==(const QSize &,const QSize &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qsize.h(243): or 'bool operator ==(const QSizeF &,const QSizeF &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qhash.h(198): or 'bool operator ==(const QHashDummyValue &,const QHashDummyValue &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qpoint.h(80): or 'bool operator ==(const QPoint &,const QPoint &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qpoint.h(240): or 'bool operator ==(const QPointF &,const QPointF &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qrect.h(151): or 'bool operator ==(const QRect &,const QRect &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/tools/qrect.h(551): or 'bool operator ==(const QRectF &,const QRectF &)'
      C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\guiddef.h(192): or 'int operator ==(const GUID &,const GUID &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/kernel/qvariant.h(446): or 'bool operator ==(const QVariant &,const QVariantComparisonHelper &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtbase\include\qtcore\../../../../../qt5-src-5.2.0/qtbase/src/corelib/kernel/qmetaobject.h(173): or 'bool operator ==(const QMetaMethod &,const QMetaMethod &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtmultimedia\include\qtmultimedia\../../../../../qt5-src-5.2.0/qtmultimedia/src/multimedia/qmediatimerange.h(78): or 'bool operator ==(const QMediaTimeInterval &,const QMediaTimeInterval &)'
      e:\opensource\qt5-src-5.2.0-build-vs2008\qt-x64-shared-d\qtmultimedia\include\qtmultimedia\../../../../../qt5-src-5.2.0/qtmultimedia/src/multimedia/qmediatimerange.h(122): or 'bool operator ==(const QMediaTimeRange &,const QMediaTimeRange &)'
      while trying to match the argument list '(PROPERTYKEY, const PROPERTYKEY)'

      This happens when compiling a 32-bit as well as a 64-bit Qt5. The same sources compile fine with other versions of Visual Studio and the same configuration options.

      I can provide full config and and build logs if necessary.

      Attachments

        For Gerrit Dashboard: QTBUG-34479
        # Subject Branch Project Status CR V

        Activity

          People

            ylopes Yoann Lopes
            sigmoidal sigma
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes