Probleme mit QT unter Windows



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



  • Na dann viel Spaß. Ich code mittlerweile die GUI auch komplett selbst(also nicht die Widgets, sondern deren Anordnung). Angefangen hatte ich mit dem Qt-Designer, aber es fing dann schon an, dass ich ein eigenes Widget nicht einfach da einbinden konnte oder manche Eigenschaften von Objekten dann doch nur per Code erreichbar waren. Hätte ich sicherlich alles irgendwie lösen können, aber der Weg komplett alles selbst zu machen ging dann doch irgendwie schneller als gedacht.



  • Ja, Qt ist da wirklich zuvorkommend. Wenn ich bedenke, ich hab es mit GTK+ versucht. Ging zwar auch, aber irgendwie hat mir das nicht so gefallen. Dann kam wxWidgets. Auch nicht übel, aber auch nicht wie ich mit das vorstelle. Nana war dann schon deutlich mehr nach meinem Geschmack. Aber nach dem letzten Update liefen auf einmal meine ganzen Programme nicht mehr, wenn ich was verändert hab. Dann hab ich es doch mit Qt versucht und bin wirklich zufrieden damit. Nicht unbedingt MUI, aber mir gefällt es!



  • Also, soweit funktioniert das ja alles super bisher. Ich entwickle was unter Linux, schiebe es mittels GIT auf Windows, compiliere es und es läuft. Da ist aber die Sache mit den DLLs. Die in das entsprechende Verzeichnis zu kopieren ist ja mit windeploy sehr einfach, aber tut es Not, dass dann alles so unglaublich gross wird? Ein simples GUI was überhaupt nichts kann hat mit den DLLs fast 1GB! Kann man das nicht irgendwie reduzieren?



  • 1GB scheint mir doch extrem groß(Release oder Debug Version?). Ich muss ehrlich gestehen, dass ich noch nie so weit war mit Qt um was als fertiges Paket weiter zu geben. Meiner Meinung nach sollte da irgendwas zwischen 10 bis 100MB bei raus kommen, wenn man keine weiteren Ressourcen eingebunden hat. Aber hier soll mal bitte jemand antworten, der wirklich in der Materie mit Deploy und Co drin ist.



  • Es handelt sich um eine Release Version. Ist auch noch lange nicht soweit, dass ich es veröffentlichen könnte, aber ich kenne ja den Effekt. Nur weil das Programm bei mir läuft, muss es nicht auch auf anderen Rechnern laufen. Bei Linux weiss ich, was ich da tun, oder raten muss, aber da Windows Neuland ist, wollte ich einfach einmal testen, ob es auch auf einem Otto-Normal-Windows-Rechner läuft. Aber 1GB waren mir zum verschicken dann doch ein wenig heftig.



  • Ich habe das eben mal mit meinem Projekt getestet und komme bei mir auf 18MB für alles. Allerdings habe ich die Qt Dlls, die benötigt werden, per Hand in das Verzeichnis kopiert. Meine Exe(in der noch eine third party lib statisch mit rein gelinkt ist) brauchte QtGui.dll, QTCore.dll und QtWidgets.dll um laufen zu können.

    Mein Sourcecode ist bis jetzt ca 500kB groß.

    Achso, ich nutze VisualStudio 2019 Community Edition mit den Qt VS Tools unter Windows10. Bei der Qt 5.13.0 Installation haben ich auch nur das msvc2017_64 Kit installiert.

    In dem Projekteinstellungen selbst sind keine großen Anpassungen drin, nur dass ich C++17 nutze, wegen so etwas hier:

    class Audio
    {
    public:
    	Audio();
    	.
    	.
    	.
    
    private:
    	.
    	inline static double volume_{ 0.0 }; // braucht C++17
    	.
    };
    


  • Bei einem Projekt von mir ist es das gleiche (QtWidget based). Da sind die ganzen benötigten Qt related files zusammen auch nur 18MB groß.

    @Hirnfrei Kannst du mal auflisten was für dateien alles beim "deploy" mit windeploy kopiert wurden?

    Nicht das da auch noch *.pdb Dateien mit enthalten sind und diese können sehr groß werden.

    Edit: Und zeig mal deine aufruf von windeploy (also welche parameter verwendet werden)



  • 18 MB klingt ja doch schon etwas ansprechender, als 1GB. Gehe ich mal davon aus, dass das Programm nur die DLLs benötigt, die man auch verlinkt hat? In dem Fall wären es bei mir auch nur die drei von dir angegebenen DLLs. Mir kopiert der aber mehr mit und ich bin davon ausgegangen, dass die anderen DLLs Abhängigkeiten sind.

    @firefly Kann ich nachher gerne machen. Aber die DLLs an sich waren schon ziemlich gross. 300 MB, 200 MB usw. Etwas übertrieben, wie ich finde.



  • Daher die frage nach der auflistung. Denn eine Dateigröße von 300MB klingt schon komisch (eher nach debug dlls oder ähnlichen.

    Wobei anzumerken ist das bei meinem Projekt ich die offizielle Qt installation verwende welche mit visualstudio gebaut wurde.
    Wie das bei einer mingw Qt version aussieht weis ich nicht, da könnten zusätzliche mingw related files kopiert werden die das ganze vom benötigten platten platz her aufblähen



  • Sind da vielleicht auch pdb´s dabei?


Anmelden zum Antworten