Problem mit QT5 & redefinition

Verschiedenes zu Qt
Antworten
RobRoy1304
Beiträge: 44
Registriert: 9. Juli 2009 10:56

Problem mit QT5 & redefinition

Beitrag von RobRoy1304 » 18. Oktober 2016 08:26

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

Christian81
Beiträge: 7313
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Problem mit QT5 & redefinition

Beitrag von Christian81 » 18. Oktober 2016 16:15

Hast Du ggf. Qt4 und Qt5 Header parallel installiert? Und wo ist die andere Definition der Struktur.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

RobRoy1304
Beiträge: 44
Registriert: 9. Juli 2009 10:56

Re: Problem mit QT5 & redefinition

Beitrag von RobRoy1304 » 19. Oktober 2016 21:07

Hallo,

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

LG
Robert

Christian81
Beiträge: 7313
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Problem mit QT5 & redefinition

Beitrag von Christian81 » 21. Oktober 2016 07:16

Bei der Fehlermeldung muss auch stehen wo die erste Definition der Struktur ist - die wollte ich sehen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

RobRoy1304
Beiträge: 44
Registriert: 9. Juli 2009 10:56

Re: Problem mit QT5 & redefinition

Beitrag von RobRoy1304 » 22. Oktober 2016 12:29

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
Dateianhänge
screen.png
screen.png (80.72 KiB) 5061 mal betrachtet

RobRoy1304
Beiträge: 44
Registriert: 9. Juli 2009 10:56

Re: Problem mit QT5 & redefinition

Beitrag von RobRoy1304 » 27. Oktober 2016 22:55

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
Dateianhänge
screen.png
screen.png (105.39 KiB) 5039 mal betrachtet

Christian81
Beiträge: 7313
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Problem mit QT5 & redefinition

Beitrag von Christian81 » 28. Oktober 2016 09:20

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)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

sowas
Beiträge: 101
Registriert: 19. September 2006 16:02

Re: Problem mit QT5 & redefinition

Beitrag von sowas » 28. Oktober 2016 12:40

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...

Antworten