Unsolved Windows, qt und cmake
-
Mahlzeit!
Ich habe angefangen mit der Entwicklung unter Zuhilfenahme von QT. Unter Linux klappt das auch hervorragend, wie ich anerkennen muss.
Nun habe ich aber ein Problem. Ein neues Projekt von mir sollte auch unter Windows lauffähig sein. Eigentlich, durch den Einsatz von cmake, qt und clang sollte das meiner Meinung nach ja kein Problem sein. Da habe ich leider falsch gedacht.
Ich verwende als IDE Visual Studio Code. Allerdings will es auf Windows einfach nicht funktionieren. QT ist installiert und das alles, es compiliert auch bis zum verlinken. Dann gibt es jede Menge Meldungen. Wie ich herausgefunden habe, liegt das wohl an den Librarys.
Jetzt meine Frage. Hier findet sich doch bestimmt jemand, der mit dem Thema schon Erfahrung hat. Ich selbst habe Windows nur vielleicht ein halbes Jahr unter Windows XP eingesetzt, bevor ich ganz schnell den Weg nach Linux eingeschlagen habe. Ich bin da also praktisch gesehen fortgeschrittener Anfänger. Kann mir hier jemand unter die Arme greifen?
Ja, die Frage bezieht sich jetzt wirklich erst einmal darauf, ob sich hier jemand hilfsbereites findet.
-
Initial würde ich es einfach mal mit dem QtCreator versuchen - dort ist die Integration etc. schon direkt mit dabei, für Visual Studio Code gibt es m.E. keine Qt und CMake-Integration. Also einfach den QtCreator mit den Online-Installer runterladen und ausprobieren.
btw: Visual Studio Code ist nur ein Code-Editor, da ist noch kein Compiler dabei - was hast Du also für einen Compiler installiert?
-
Für CMake gibt es ein Addon für Visual Studio Code. Für Qt leider nicht.
Als Compiler habe ich unter Windows sowohl MinGW, wie auch LLVM und in letzter Instanz aus lauter Verzweiflung auch Visual Studio 2019 Community installiert.
Gestern habe ich die CMake Datei exakt nach einem Tutorial auf YouTube angepasst. Dort funktioniert alles ausgezeichnet, bei mir jedoch nicht. Folglich werde ich wohl tatsächlich den QTCreator ausprobieren müssen. Zumindest für die Projekte, die Cross-Plattform sein sollen.
-
Ich verzweifle langsam. Habe jetzt ein neues Projekt unter Linux zum testen gestartet. Genau nach dem Tutorial auf YouTube, wo es funktioniert. Zu finden hier . Schritt für Schritt mit Qt-Creator und alles. Doch während es im Video problemlos compiliert, bekomme ich hunderte LNK2019 und LNK2001 Fehler. Was mache ich da nur falsch?
-
Ich gebe Christian recht. Versuche es erstmal ganz einfach mit dem QtCreator und minGW. Auch das mit cmake würde ich auf später verschieben, falls es überhaut notwendig ist. In Windows läuft alles mit qmake.
Deine Fehler deuten darauf hin, dass der MS-Linker irgendwelche Abhängigkeiten nicht findet. -
Ich habe es ja schon mit dem QT-Creator versucht. Bin exakt nach dem Video vorgegangen. Nur dort funktioniert es, während bei mir die Abhängigkeiten fehlen. Leider bin ich bei Windows nicht wirklich weit genug um zu wissen, wo ich diese suchen soll. Wahrscheinlich ist da nur irgendwo ein Pfad nicht korrekt, oder ähnliches. Was mich wundern würde, denn im Video funktioniert es ja. Wobei ich da auch davon ausgehen kann, der Ersteller des Videos hat ja im Vorfeld schon damit gearbeitet und vielleicht einen Pfad gesetzt, was er im Video nicht gezeigt hat.
Auf jeden Fall geht mir das echt auf den Keks.
Ich hab mal zwei der Fehler von Windows rausgeholt. Das sieht dann so aus:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler LNK2019 Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl QMetaObject::connectSlotsByName(class QObject *)" (_imp?connectSlotsByName@QMetaObject@@SAXPEAVQObject@@@Z)" in Funktion ""public: void __cdecl Ui_MainWindow::setupUi(class QMainWindow *)" (?setupUi@Ui_MainWindow@@QEAAXPEAVQMainWindow@@@Z)". helloqt C:\Users\Na ich\Documents\helloqt\mainwindow.obj 1Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler LNK2001 Nicht aufgelöstes externes Symbol ""protected: virtual void __cdecl QMenuBar::actionEvent(class QActionEvent *)" (?actionEvent@QMenuBar@@MEAAXPEAVQActionEvent@@@Z)". helloqt C:\Users\Na ich\Documents\helloqt\mainwindow.obj 1 -
@diabolusumarov
mmh
kommt mir bekannt vor,
welcher compiler & Qt Version ist das?Und kannst du ein normales "Hello World" Programm erfolgreich übersetzen?
-
Die Qt Verision ist 5.13.0 und das habe ich mit Visual Studio 2019 compiliert.
Und ja, solange kein Qt dabei ist funktioniert das compilieren hervorragend.
-
Hi
ich würde im QtCreator unter Kits die Pfade für die Qt version, qmake und so weiter erstmal checken.
Hast du Qt auch unter windows kompiliert?
Sieht danach aus als ob dein QtCreator die Qt kompilierten Dateien gar nicht findet.