qt5concurent.dll usw

Alles rund um die Programmierung mit Qt
Antworten
DimitriJunker
Beiträge: 33
Registriert: 8. September 2014 12:12

qt5concurent.dll usw

Beitrag von DimitriJunker » 12. Februar 2019 11:42

Nochmal ein altes Problem, wie packt man ein mit QTCreator erzeugtes Programm zusammen damit es auf einem anderen Computer unter Windows läuft? Wenn ich das exe starte wird mir gemeldet, daß besagte dll fehlt, suche ich sie auf meinem PC und kopiere sie ins Verzeichnis bekomme ich einen Fehler 0xc00007b, also habe ich wohl eine 32bit dll mit einem 64bit exe gemischt. Google ich nach qt5concurent.dll und 64bit kommen alle möglichen Seiten aber keine die nach einer "offizilen" QT Seite aussieht. Das Tool Dependency Walker habe ich auch schon gefunden, hilft mir aber nicht dabei eine Quelle für die dlls zu finden. Muss man wirklich bei jeder neuen Version wieder alle dlls dazu packen oder kann man z.B. inno Setup Compiler o.ä. anweisen diese falls nötig aus dem www nachzuladen? Ach ja hier im Forum nach dll suchen funktioniert nicht, es sei ein zu häufiger Begriff.

helmut.jakoby
Beiträge: 9
Registriert: 17. Januar 2012 16:26

Re: qt5concurent.dll usw

Beitrag von helmut.jakoby » 12. Februar 2019 12:29

windeployqt.exe ?

DimitriJunker
Beiträge: 33
Registriert: 8. September 2014 12:12

Re: qt5concurent.dll usw

Beitrag von DimitriJunker » 13. Februar 2019 00:35

Danke, aber das Resultat verwirrt mich jetzt, da sind Unmengen an Files die ich bisher nicht beigefügt habe. Ich hatte bisher mit einer älteren QT Version nur 32Bit erzeugt und damals irgendwie die nötigen dlls dazu kopiert. windeplayqt fügt mehr dlls bei, außerdem einen Ordner translations mit 21 qm Files, obwohl ich das Programm nur in Französisch und Englisch übersetzt habe, die Ordner bearer, iconengines und styles mit je einer dll,
imageformats mit 9 dlls für Bildformate die ich teils nicht kenne und sicher nicht nutze. Ist das wirklich alles nötig?
Kann QTCreator dieses windeplayqt nicht afrufen? Wenn nicht wäre dies wohl ein Verbesserungsvorschlag.
Die größte dll die windeplayqt hinzufügt ist opengl32sw mit 15MB, die hatte ich z.B. bisher nicht, und wenn ich sie umbenenne läuft das Programm trotzdem, im Dependency walker finde ich sie auch nicht,

veeman
Beiträge: 256
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: qt5concurent.dll usw

Beitrag von veeman » 13. Februar 2019 10:07

Schau dir die Kommandozeilenbefehle von windeployqt an.

Für dich interssant:
--no-angle und --no-opengl-sw
Insofern du keine Hardwarebeschleunigung für Grafiken brauchst, insofern du kein OpenGL und Oder QGraphicsView verwendest wirst du dies nicht benötigen.

--no-webkit2
Wenn du kein Webkit aka. WebView verwendest, kannstdu dies auch setzen.

--no-plugins
Um die ganzen Bildformat DLLs nicht mit zu kopieren.

Ggf noch weitere optionen.

Leider ist es so, dass ab qt5 ziemlich viel überarbeitet wurde und man stärker auf externe Bibliotheken sowie Internationalisierung setzt, dadurch sind die Qt5 Deployement-Abhängigkeiten und der damit zussamenhängede Festplattenspeicherbedarf relativ groß.

Ansonsten solltest du alle QT DLLs in deinem install Ordner finden können.
mfg veeman

mage-dev

DimitriJunker
Beiträge: 33
Registriert: 8. September 2014 12:12

Re: qt5concurent.dll usw

Beitrag von DimitriJunker » 13. Februar 2019 11:13

Hallo,

da frage ich mich doch was windepoyqt sinnvolles macht. Ich hätte erwartet, daß es sich das Programm ansieht und dann nur das kopiert was gebraucht wird. Sonst könnte man ja auch einfach ein Zip anbieten das man dazupackt. Falls ich mich mal langweile sehe ich mir das genauer an, vieleicht programmier ich dann selber was;-) Aber bis dahin schonmal danke

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

Re: qt5concurent.dll usw

Beitrag von Christian81 » 13. Februar 2019 18:54

Das ist genau das was windeployqt auch macht - es schaut welche Dlls benötigt werden. Dazu schaut es auch was für Plugins benutzt werden (soweit dies möglich ist) und kopiert natürlich auch die Plugin-Dependencies - das siehst Du mit Dependency Walker nicht wenn Du nur das Executable scannst...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

DimitriJunker
Beiträge: 33
Registriert: 8. September 2014 12:12

Re: qt5concurent.dll usw

Beitrag von DimitriJunker » 14. Februar 2019 12:39

Hallo,

veeman schrieb das man durch --no einiges weglassen könne, wenn windeployqt nur das kopieren würde was man braucht könnte man doch nichts weglassen oder wo ist da mein Denkfehler?

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

Re: qt5concurent.dll usw

Beitrag von Christian81 » 14. Februar 2019 18:51

Angle ist eine Zwischenschicht für OpenGL - wenn man plain OpenGL verwenden will (oder eben gar kein OpenGL) dann kann man das weglassen. Das kann windeployqt nicht aus dem Executable herausfinden.
Plugins sind per se optional
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

DimitriJunker
Beiträge: 33
Registriert: 8. September 2014 12:12

Re: qt5concurent.dll usw

Beitrag von DimitriJunker » Gestern 02:55

Hallo,

wäre es dann nicht sinnvoller die pro-Datei zu analysieren statt der exe?
Andere Idee, statt die ganzen dlls in das Installationspaket zu packen könnte man doch auch windepoyqt beifügen und im Rahmen der Installation ausführen oder?

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

Re: qt5concurent.dll usw

Beitrag von Christian81 » Gestern 07:33

Und was ist wenn mehrere exectables in einer pro-Datei/Hierarchie gebaut werden oder qmake gar nicht benutzt wird?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

DimitriJunker
Beiträge: 33
Registriert: 8. September 2014 12:12

Re: qt5concurent.dll usw

Beitrag von DimitriJunker » Gestern 11:48

Wo ist da das Problem? Man kann jetzt auch einen Ordner angeben, da können auch mehrere exe drin sein. Es gäbe bei mehreren exe in einem Pro 2 Lösungen, entweder automatisch die Files für alle hinzufügen, oder den User fragen. Ideal wäre sowieso es dann in qtcreator zu integrieren, also beim Erstellen dies gleich miterledigen.
Und wer kein qmake nutzt kann ja immer noch die alte Variante nutzen, man muß ja nicht das alte entsorgen wenn man was neues einführt

Antworten