Fails to build against Qt 5.14.0, 5.13.2 was OK

• Jan 1, 2020 - 18:21

I'm failing to build MuseScore 3.3.4 on a Linux OS, with version gcc 9.2.0 and latest Qt 5.14.0.
The same release with the same toolchain compiled successfully against Qt 5.13.2.

Here is the generated error:

[...]
In file included from $PREFIX/include/qt5/QtCore/qobject.h:54,
                 from $PREFIX/include/qt5/QtCore/qabstractanimation.h:43,
                 from $PREFIX/include/qt5/QtCore/QtCore:6,
                 from $PREFIX/include/qt5/QtGui/QtGuiDepends:3,
                 from $PREFIX/include/qt5/QtGui/QtGui:3,
                 from all.h:62:
$PREFIX/include/qt5/QtCore/qmetatype.h: In instantiation of ‘static void QtMetaTypePrivate::QMetaTypeFunctionHelper<T, Accepted>::Save(QDataStream&, const void*) [with T = Ms::SessionStart; bool Accepted = true]’:
$PREFIX/include/qt5/QtCore/qmetatype.h:1802:39:   required from ‘void qRegisterMetaTypeStreamOperators(const char*, T*) [with T = Ms::SessionStart]$SRC_DIR/mscore/musescore.cpp:7279:68:   required from here
$PREFIX/include/qt5/QtCore/qmetatype.h:818:16: error: ambiguous overload for ‘operator<<(operand types are ‘QDataStream’ and ‘const Ms::SessionStart’)
  818 |         stream << *static_cast<const T*>(t);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from $PREFIX/include/qt5/QtCore/QtCore:60,
                 from $PREFIX/include/qt5/QtGui/QtGuiDepends:3,
                 from $PREFIX/include/qt5/QtGui/QtGui:3,
                 from all.h:62:
$PREFIX/include/qt5/QtCore/qdatastream.h:389:1: note: candidate: ‘typename std::enable_if<std::is_enum<_Tp>::value, QDataStream&>::type& operator<<(QDataStream&, const T&) [with T = Ms::SessionStart; typename std::enable_if<std::is_enum<_Tp>::value, QDataStream&>::type = QDataStream&]389 | operator<<(QDataStream &s, const T &t)
      | ^~~~~~~~
In file included from $SRC_DIR/mscore/musescore.cpp:23:
$SRC_DIR/mscore/preferences.h:378:21: note: candidate: ‘QDataStream& Ms::operator<<(QDataStream&, const T&) [with T = Ms::SessionStart; typename std::enable_if<std::is_enum<_Tp>::value>::type* <anonymous> = 0]378 | inline QDataStream &operator<<(QDataStream &out, const T &val)
      |                     ^~~~~~~~
In file included from $PREFIX/include/qt5/QtCore/qobject.h:54,
                 from $PREFIX/include/qt5/QtCore/qabstractanimation.h:43,
                 from $PREFIX/include/qt5/QtCore/QtCore:6,
                 from $PREFIX/include/qt5/QtGui/QtGuiDepends:3,
                 from $PREFIX/include/qt5/QtGui/QtGui:3,
                 from all.h:62:
$PREFIX/include/qt5/QtCore/qmetatype.h: In instantiation of ‘static void QtMetaTypePrivate::QMetaTypeFunctionHelper<T, Accepted>::Load(QDataStream&, void*) [with T = Ms::SessionStart; bool Accepted = true]’:
$PREFIX/include/qt5/QtCore/qmetatype.h:1802:39:   required from ‘void qRegisterMetaTypeStreamOperators(const char*, T*) [with T = Ms::SessionStart]$SRC_DIR/mscore/musescore.cpp:7279:68:   required from here
[...]

Thanks


Comments

As far as I know no claim has been made that this should be supported, I believe we support 5.9 and 5.13 only right now. I gather 5.14 is not slated for 5.14 so I doubt we'll ever bother to support that, but presumably we will eventually support 5.15.

Do you still have an unanswered question? Please log in first to post your question.