Seite 1 von 1

Problem mit QT5 & redefinition

Verfasst: 18. Oktober 2016 08:26
von RobRoy1304
Hallo zusammen,

ich wollte meine Lagerverwaltung von QT4.8 auf QT5.7 ''upgrade'n'', und bekomme unter meinem System:
Ubuntu 16.04, 64-Bit, Qt-opensource-Edition, beim kompilieren Fehlermeldungen durch redefinition.

z.B.
/home/rob/Qt/5.7/gcc_64/include/QtCore/qmetatype.h:1864: Fehler: redefinition of ‘struct QMetaTypeId<QItemSelection>’
struct QMetaTypeId< TYPE > \
^

Die Redefinition beziehen sich nicht auf von mir erstellten Code, sondern auf QT-Code. Diese Probleme traten natürlich
nicht unter QT4.8 auf.
Daher mal eine Frage, hat jemand ähnliche Erfahrungen gemacht beim portieren seines Projekts von QT4 auf QT5?

MfG
Robert
https://sites.google.com/site/robertewert/lava2

Re: Problem mit QT5 & redefinition

Verfasst: 18. Oktober 2016 16:15
von Christian81
Hast Du ggf. Qt4 und Qt5 Header parallel installiert? Und wo ist die andere Definition der Struktur.

Re: Problem mit QT5 & redefinition

Verfasst: 19. Oktober 2016 21:07
von RobRoy1304
Hallo,

nee, ich habe auf einem frisch installierten Ubuntu QT5
installiert. Was meinst du mit den anderen Teil?

LG
Robert

Re: Problem mit QT5 & redefinition

Verfasst: 21. Oktober 2016 07:16
von Christian81
Bei der Fehlermeldung muss auch stehen wo die erste Definition der Struktur ist - die wollte ich sehen.

Re: Problem mit QT5 & redefinition

Verfasst: 22. Oktober 2016 12:29
von RobRoy1304
Hi,
sorry das ich erst jetzt antworte. Hattest recht, laut Synaptic ist auch QT4 installiert, warum auch immer, scheint er bei der Installation
von QT5 automatisch mitinstalliert zu haben. Anbei mal ein screenshot bezüglich Fehlermeldung.

LG
Rob

Re: Problem mit QT5 & redefinition

Verfasst: 27. Oktober 2016 22:55
von RobRoy1304
Sorry, muss noch mal nerven,

hab's jetzt unter einer frischen Windows 10-Installation getestet, garantiert ohne QT4, und habe den gleichen Fehler. Unter
Ubuntu habe ich mitbekommen das QT4 auf Grund der GUI zur Steuerung von meinen HP-Drucker(Paket HPLIP-Gui) installiert
wurde, also nicht durch den Installer von QT5.7

Ich weiß keinen Rat, liegt es an #include <QApplication>, hat sich im Aufbau/Abhängigkeiten von QT5 gegenüber QT4 soviel verändert?
z.B. reicht #include <QtGui> auch nicht mehr, man muss sämtliche widgets(QTableWidget etc.) extra includieren die man nutzen will.

LG
Robert

Re: Problem mit QT5 & redefinition

Verfasst: 28. Oktober 2016 09:20
von Christian81
Steht doch eindeutig dort wo es doppelt definiert wurde:
in expansion of macro Q_DECLARE_METATYPE - mainwindow.h:59
und
in expansion of macro Q_DECLARE_METATYPE - qitemselectionmodel.h:280
d.h. Du hast in mainwindow.h ein Q_DECLARE_METATYPE für QItemSelection was dort nicht hingehört da Qt dies in seinen Headern schon macht. Q_DECLARE_METATYPE für Qt-Typen muss / darf nie gemacht werden da dies immer von Qt geschieht (geschehen sollte)

Re: Problem mit QT5 & redefinition

Verfasst: 28. Oktober 2016 12:40
von sowas
Stelle fest was voreingestellt ist: qt4 oder qt5.
Gehe hierzu auf Extras->Einstellungen ->Erstellen und Ausfüren->Kits. Bei Benutzerdefiniert kicke auf Desktop, vergrößer den Dialog, wenn bei Qt-Version: Qt 4.8... steht, dann wähle Qt 5...