C++ Qt: Fehler bei Portierung von Qt 4.8 zu 5.3

Hellstorm

Cadet 4th Year
Registriert
Nov. 2008
Beiträge
100
[SOLVED] Qt: Fehler bei Portierung von Qt 4.8 zu 5.3

Guten abends allerseits,

ich bin gerade dabei am Verzweifeln, eines meiner Programme von Qt 4.8 auf 5.3 zu portieren.
Ich verwende dabei VS2010. Das Qt-Addin ist aktuell.

Soweit sind auch alle Dinge angepasst worden, die bei der Portierung von 4.x auf 5.x zu beachten sind (z.B. das einige Includes nun mit <QtWidgets/xyz> zu bezeichnen sind). Das Kompilieren läuft auch ohne Fehler durch. Beim Linken prasseln dafür allerdings allerlei Fehler rein:

Code:
1>ustack.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class QStringList __cdecl QFileDialog::getOpenFileNames(class QWidget *,class QString const &,class QString const &,class QString const &,class QString *,class QFlags<enum QFileDialog::Option>)" (__imp_?getOpenFileNames@QFileDialog@@SA?AVQStringList@@PAVQWidget@@ABVQString@@11PAV4@V?$QFlags@W4Option@QFileDialog@@@@@Z)" in Funktion ""public: void __thiscall uStack::openFile(void)" (?openFile@uStack@@QAEXXZ)".
1>ustack.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void __thiscall QGraphicsItem::advance(int)" (?advance@QGraphicsItem@@UAEXH@Z)".

Und das geht so ein paar 100 Zeilen weiter. Alles, was ich bisher über google fand, hat aber keine Besserung gebracht. Hat hier jemand noch irgendeine Idee?
 
Zuletzt bearbeitet:
Irgendeine notwendige Importlib nicht angegeben?
 
Die sind alle vorhanden. Mittlerweile bin ich soweit gekommen, dass es wohl am moc liegt, wenn Q_OBJECT verwendet wird.
Einige Quellen verweisen darauf, die .pro Datei neu zu laden, sodass die ganzen Einstellungen neu generiert werden, aber die Fehler verschwinden trotzdem nicht. :(
 
Nein, zeigt auf:
C:\qt5\5.3\msvc2010_opengl\lib\qtmaind.lib
C:\Qt5\5.3\msvc2010_opengl\lib\Qt5Cored.lib
C:\qt5\5.3\msvc2010_opengl\lib\Qt5Guid.lib
C:\qt5\5.3\msvc2010_opengl\lib\Qt5Cored.lib

Und die existieren auch
Ergänzung ()

Hab den Fehler nun gefunden.

In der Qt-Projectdatei .pro fehlte noch die Zeile
Code:
QT += widgets

Komplette Schritte hier also: Alle vorkommnisse von #include <QtGui> in #include <QtWidets> ändern und z.B. #include <qgraphicsitem.h> in #include <QtWidgets/qgraphicsitem.h> ändern.
Anschließend die VS Konsole öffnen, zum Projektverzeichnis navigieren und qmake -project -tp vc ausführen. Die .pro-Datei anschließend öffnen und o.g. Zeile einfügen. Danach die .pro-Datei in Visual Studio öffnen. Ggf. nochmal die Linker-Settings überprüfen.

Und an so nem kleinem Fehler hängt man mal wieder stunden...
 
Zurück
Oben