Probleme mit QT unter Windows



  • Guten Tag,

    ich habe Schwierigkeiten mit Qt unter Windows. Hintergrund des Ganzen ist, ich will ein Programm, welches ich unter Linux mit Qt geschrieben habe auch unter Windows lauffähig machen. Dummerweise funktioniert das leider nicht.

    Etwas zu meiner Vorgehensweise. Nach einigen erfolglosen Versuchen habe ich auf YouTube ein Tutorial gefunden, welches ich einfach nachgebaut habe, um wenigstens mal eine Anwendung unter Windows zum laufen zu bringen. Das Tutorial findet man hier.

    Ich habe nach der gezeigten Vorgehensweise Qt 5.13.0 installiert, mit Qt-Creator ein ui erzeugt und das ganze Programm eben. Auch das CMakeLists.txt habe ich exakt nachgebaut. Zum compilieren habe ich dann Visual Studio 2019 (Community) verwendet. Aber anstatt das Programm zu compilieren, bekomme ich beim linken jede Menge Fehler. Sind alle vom Typ LNK2001 und LNK2019.

    Hier zwei Beispiele:

    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 1
    
    Schweregrad 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
    

    Ich gehe davon aus, dass der Linker die benötigten Bibliotheken nicht findet, oder sonst wie Schwierigkeiten hat. Leider bin ich unter Windows echt schlecht und hab keinen Plan, wie ich das beheben könnte. Weiss hier jemand Rat?



  • Es wird sich wohl kaum jemand ein halbstündiges Video ansehen nur um nachvollziehen zu können, wie Dein Code und Dein Makefile aussieht.

    @Hirnfrei sagte in Probleme mit QT unter Windows:

    Zum compilieren habe ich dann Visual Studio 2019 (Community) verwendet.

    Was bedeutet das?



  • @Swordfish sagte in Probleme mit QT unter Windows:

    Es wird sich wohl kaum jemand ein halbstündiges Video ansehen nur um nachvollziehen zu können, wie Dein Code und Dein Makefile aussieht.

    Das mag sein, aber lieber gebe ich eine Quelle an als hinterher gesagt zu bekommen, man müsste schon wissen welches Video das war. Das hatte ich schon öfters.

    Ein Makefile dazu gibt es auch nicht, da es von Cmake ein Visual Studio Projekt erzeugt wurde.

    @Hirnfrei sagte in Probleme mit QT unter Windows:

    Zum compilieren habe ich dann Visual Studio 2019 (Community) verwendet.

    Was bedeutet das?

    Nur das es die Community-Variante von Visual Studio ist, also die kostenfreie Variante.



  • @Hirnfrei sagte in Probleme mit QT unter Windows:

    Nur das es die Community-Variante von Visual Studio ist, also die kostenfreie Variante.

    Die Frage war eher *wie* du kompilierst.

    @Hirnfrei sagte in Probleme mit QT unter Windows:

    da es von Cmake ein Visual Studio Projekt erzeugt wurde.

    Kompiliere von Qt-Creator raus.



  • @Swordfish sagte in Probleme mit QT unter Windows:

    @Hirnfrei sagte in Probleme mit QT unter Windows:

    Die Frage war eher *wie* du kompilierst.

    Na ja, ich lade das Projekt in Visual Studio und drücke wähle im Menü erzeugen aus.

    @Hirnfrei sagte in Probleme mit QT unter Windows:

    da es von Cmake ein Visual Studio Projekt erzeugt wurde.

    Kompiliere von Qt-Creator raus.

    Der kann compilieren?



  • @Hirnfrei sagte in Probleme mit QT unter Windows:

    Der kann compilieren?

    Nein, er verwendet dazu den Microsoft Compiler. Aber hoffentlich mit den richtigentm Einstellungen.



  • Nein, er verwendet dazu den Microsoft Compiler. Aber hoffentlich mit den richtigentm Einstellungen.

    Meinst du damit zufällig nmake?



  • @Hirnfrei

    nmake ist kein Compiler.



  • @Hirnfrei sagte in Probleme mit QT unter Windows:

    Meinst du damit zufällig nmake?

    Du sollst bitte einfach nur im Qt-Creator im Menü Build auf Build Project "whatever" klicken und dann auf Run.



  • Ah okay.



  • Hab ich nun versucht. Leider ist Erstellen bei mir nicht anwählbar.



  • Dann schau' Dich mal bei "Projects" in der Leiste links um.



  • Dann schau mal, ob ein Compiler bei dir eingetragen ist: Qt Creator - Adding Compilers

    Den MSVC damit zu benutzen ist aber wohl nicht ganz so einfach (z.B. kann man den VS Debugger beim Qt Creator nicht einbinden).

    Du kannst aber auch ganz auf den Qt Creator verzichten und mittels dem Add-on Qt Visual Studio Tools 2019 Qt in VS2019 integrieren.



  • @Th69 sagte in Probleme mit QT unter Windows:

    Den MSVC damit zu benutzen ist aber wohl nicht ganz so einfach

    Doch, das ist Idiotensicher (= ich habe es auch geschafft)



  • Mit welchem Compiler wurden denn dein Projekt unter Linux kompiliert? Bei der Installation von Qt muss man ja nicht den Visual Studio Compiler nutzen, sondern kann sich z.B. auch für MinGW entscheiden. Und wie hier schon gesagt wurde, brauchst du Visual Studio unter Windows gar nicht. Du kannst weiter mit dem Qt-Creator arbeiten, so wie unter Linux auch. Und wenn es denn Visual Studio sein muss, dann muss die Qt VS Tools Extension installiert und konfiguriert sein, damit kann man dann auch die .pro Projektdateien öffnen.



  • Also, ich schnalle gerade ein wenig ab. Hab rumgesucht und das alles und dabei entdeckt, dass im Start-Menü von Windows ein Eintrag für Qt mit MinGW drin ist. Drauf geklickt, startet cmd wo anscheinend alle Pfade und so richtig gesetzt sind. Aber, MinGW will nicht laufen. Es könne nicht zum compilieren von simplen Programmen verwendet werden. Ist mir mal ganz neu der Fehler. Habe jetzt ninja runtergeladen. Damit compiliert VisualStudioCode unter Linux auch und siehe da, jetzt läuft es einfach durch, ohne Fehler! Bin voll begeistert!

    Jetzt kommt aber wohl das mit dem deploy.



  • Wenn du Qt unter Windows installierst und MinGW als Compiler mit bei der Installation auswählst, sollte alles ohne Probleme laufen, also wenn du einfach ein Example compilierst oder ein HelloWorld Qt selbst schnell machst.

    Ich nutze jetzt zwar aktuell auch nur Visual Studio mit der Qt Extension, aber bei meinen früheren Versuchen habe ich immer nur den Qt-Creator unter Windows genutzt mit MinGW und da war nie irgendwas zusätzlich zu konfigurieren, einfach Qt installieren, Beispielprojekt erstellen, kompilieren und fertig.



  • @chris4cpp sagte in Probleme mit QT unter Windows:

    MinGW als Compiler

    Ja. Warum sollte man das tun?



  • Ich habe es damals getan damit ich den gleichen Compiler unter Linux und Windows nutzen konnte. Warum sollte ich unter Windows Visual Studio nutzen wenn ich es nicht muss, hatte ich mir gedacht. Ich glaube damals auch gedacht zu haben, dass der MinGW Sachen vom neuen Standard unterstütze die Visual Studio noch nicht drin hatte. So genau weiß ich es aber nicht mehr. Zusätzlich war ich mir nicht sicher, ob der Visual Studio Compiler wirklich kostenlos bleibt. All solche Gründe waren es wohl.



  • Na immerhin kann ich jetzt anfangen zu spielen. Ich bin kein Freund von Qt-Creator. War ich noch nie, also generell von solchen Baukästen. Ich hab von Anfang an meine GUIs geschrieben und da bin ich wohl irgendwie hängengeblieben.

    Nächster Schritt wird dann sein, die neue Anwendung Schritt für Schritt zu programmieren. Erst was neues in Linux einbauen, dann unter Windows kompilieren. Falls ich da noch auf irgendwelche Fallstricke stossen sollte.


Log in to reply