Seite 1 von 1

QT4.2.3 (static) - standalone Progr. (ohne DLLs) erzeugen?

Verfasst: 4. April 2007 11:44
von s-valve
Hallo,

nach langem rumprobieren konnte ich heute Nacht endlich die Windows-GPL Version von QT4.2.3 als release + static kompilieren.
Nun muss ich die QT DLLs nicht mehr einbinden, aber auf einem PC ohne MinGW Compiler erwartet das Programm immer noch die mingwm10.dll.
Welche Möglichkeiten gibt es dies zu unterbinden, also eine standalone .exe zu erstellen, die ohne weitere DLLs auf jedem Windowssystem lauffähig ist?

Noch was, gibt es irgendwelche Infos, wie man die .exe etwas kleiner bekommt, also einige Bibliotheken weg lassen kann, die nicht verwendet werden? Mein Kompilat aus dem QT4 examples Ordner Richtext/Syntaxhighlighter war jetzt 7,45 MB groß. Gut UPX schrumpft es auf 2,48 MB, aber wirklich schön ist die Größe nicht, wenn man von bspw. BCB 1MB als Standalone für ein wesentlich umfangreiches Prog gewohnt ist.

Gruß M

Verfasst: 4. April 2007 11:46
von webmaster1987
Im Wiki steht zwar wenig drin aber dein Problem wird da perfekt gelöst ;-)

http://www.qtwiki.de/wiki/Mingw10.dll

Und zu der Programm größe kann ich nur sagen das Qt immer nur ganze bereiche einbindet z.B. GUI oder SQL etc. und die sind eben schon ganz schön groß andere IDEs fassen die Bereiche kleiner die dann eingebunden werden müssen oder greifen wie z.B. der MFC auf System DLL zurück.

Danke

Verfasst: 4. April 2007 12:15
von s-valve
Danke, kompiliere dann QT mal erneut ohne die -mthreads Einträge in der qmake Konfigurationsdatei.
Für die andere Frage wird mir dann wohl nur UPX als kleine Abhilfe bleiben.

Gruß M

Verfasst: 4. April 2007 14:24
von Christian81
upx 2.93 (beta) kann lzma -> '--lzma' was nochmal ~30% bringt
Ausserdem würde ich Qt mit so wenig Optionen wie möglich kompilieren -> musst du aber wissen (z.B. --no-stl --no-rtti --no-qt3support) was Du entbehren kannst.

Re: Danke

Verfasst: 4. April 2007 16:44
von gerome69
s-valve hat geschrieben:Danke, kompiliere dann QT mal erneut ohne die -mthreads Einträge in der qmake Konfigurationsdatei.
Du brauchst deine statischen Qt-Libs nicht neu zu kompilieren.
Entferne nur in %QTDIR%\mkspecs\win32-g++\qmake.conf
alle "-mthreads". Dann müßte es ohne die mingw10.dll-Abhängigkeit laufen.

B.