Frage

Ich lerne Anwendungen mit Qt Creator zu entwickeln. Ich habe eine einfache Anwendung unter Windows integriert, hängt davon ab, verwendet mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll. Aus QtQui4.dll verwende ich nur ein ein paar Widgets und nicht der ganze Rest müssen ... Ist es möglich, entweder die Größe der QtGui4.dll zu schrumpfen oder etwas anderes tun Bereitstellung Größe Anwendung zu verringern? Wie wäre es statische Linken? Wird es die ganze dll, oder auch nur Teile davon einbetten, die verwendet werden? Und auch ist es möglich, mit Qt einige DLLs staticly zu verbinden und einige dynamicly?

War es hilfreich?

Lösung

Es ist nicht möglich, die QtGui4.dll zu schrumpfen, indem einige Funktionen zu entfernen. Trolltech ist einen Blick auf diese zu haben, aber die gute Lösung scheint weit entfernt:

Statische Verknüpfung, ich denke, es auf windows sehr problematisch ist. Jedes Mal, wenn ich versuchte, es war ein Alptraum.

Also, es sieht aus wie Sie mit dem regulären DLL stecken geblieben sind. Das einzige, was man tun kann (was ich für meine Qt-Anwendungen zu tun ist):

  • UPX komprimieren Sie Ihre DLL

oder

  • verwenden starke Kompression in Ihrem Installateur

Wenn Sie bereits Ihre dll UPX, können Sie es nicht weiter reduzieren mit der Installer-Komprimierung, aber diese anderen Dateien reduzieren.

Andere Tipps

Der beste Weg ist, um manuell die Qt-Bibliothek mit configure zu konfigurieren. Durch die Ausgabe von

configure --help

Sie werden eine Reihe von Optionen sehen, die sowohl Festplatten- und Speicherplatzbedarf reduzieren helfen könnten. Z.

--no-stl
--no-exceptions

kann sowohl den Platzbedarf Ihrer Anwendung reduzieren. Sie können auch die mkspec ändern aggressivere Optimierungsflags für den Compiler zu verwenden.

Wenn Sie statisch verknüpfen Sie am Ende mit einem 1,5 GB exe und Sie einige Funktionen wie Plug-In opfern. So ist es nicht wirklich wert es sei denn, Sie wollen nicht den DLLs verteilen. Aber ja, man kann Henrik Vorschlag versuchen und auch Webkit auszuschließen, die wahrscheinlich der größte Teil des Codes ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top