Typ:
Artikel Name: Kurzanleitung: Lazarus-Binärdateien kleiner machen
Autor: Euklid
Beschreibung: Kurzanleitung: Lazarus-Binärdateien kleiner machen
In dieser Anleitung wird die häufig gestellte Frage beantwortet, wie man die Größe der von Lazarus erstellten Binärdateien ohne großen Aufwandt verkleinern kann.
Überblick
Dem Programmierer stehen drei Verfahren zur Verfügung, mit denen die Größe der Binärdateien erheblich verringert werden können:
I. Entfernen von Debugger-Symbolen aus der ausführbaren Datei
II. Smartlinking - Es werden nur Bibliotheken eingehängt, die auch wirklich benötigt werden
III. UPX - Ein Kompressionsverfahren für Binärdateien
Die Effizenz dieser drei Methoden wird im folgenden Diagramm veranschaulicht: *)
Der oberste Balken entspricht der Größe der Binärdatei, ohne dass eines der Verfahren angewendet wurde. Der zweite Balken gibt die relative Dateigröße in Prozent an, wenn das Verfahren I (Debuggersymbole entfernen) angewandt wurde. Der dritte Balken stellt die Dateigröße nach Anwendung der Verfahren I und II, der vierte Balken nach Anwendung von I, II und III dar.
Wie man sieht, haben die Verfahren einen großen Einfluss auf die Dateigröße. Im Folgenden wird gezeigt, wie man sie anwendet:
I. Entfernen von Debugger-Symbolen
Standardmäßig beinhalten die von Lazarus erstellten Programme Debuggersymbole, welche das Debuggen mit dem GNU Debugger ermöglichen. Diese nehmen natürlich viel Platz ein - daher lohnen sich die folgenden Schritte:
Lazarus sollte gestartet und das entsprechende Projekt geöffnet sein.
1. Folgendes Menü öffnen:
Projekt --> Compilereinstellungen --> Linken
2. Nun, wie in obiger Abbildung gezeigt,
a) "Zeilennummern in Laufzeit-Backtraces anzeigen" deaktivieren
b) "Debuggersymbole aus der ausführbaren Datei entfernen" aktivieren
3. Das Projekt neu kompilieren.
Hinweis: Die Debuggersymbole sowie die Zeilennummern werden für das Debuggen benötigt! D.h. wenn Sie Ihr Projekt weiterentwickeln ist es sinnvoll, obige Einstellungen vorübergehend wieder rückgängig zu machen.
II. Smart-Linking
Durch Smart-Linking wird sichergestellt, dass nur diejenigen Bibliotheken in die Binärdatei eingefügt werden, die das Programm tatsächlich auch benötigt. Smart-Linking kann durch die folgenden Schritte eingestellt werden:
Lazarus sollte gestartet und das entsprechende Projekt geöffnet sein.
1. Folgendes Menü öffnen:
Projekt --> Compilereinstellungen --> Linken
(siehe Abbildung oben)
2. Smart Linken in der Groupbox "Linker-Stil" aktivieren:
3.Nun in den Reiter "Quelltext" wechseln und in der Groupbox "Unit-Stil" die Checkbox "Smart-Linkbar" aktivieren:
4.Das Programm neu kompilieren.
III. UPX
UPX ist ein Programm, das die Binärdatei komprimiert und sich selbst vor die eigentliche ausführbare Datei spannt. Wird das UPX-komprimierte Programm gestartet, wird zunächst UPX gestartet, welches die eigentliche Binärdatei in den Arbeitsspeicher entpackt und dort startet. Sie können das UPX unter der folgenden Adresse downloaden
http://upx.sourceforge.net/
und erreichen damit die besten Ergebnisse durch die folgende Anleitung:
1. Wechseln Sie in der Konsole in das Verzeichnis, in welchem Ihr Programm liegt.
2. Geben Sie nun ein:
upx -9 Dateiname
Ihr Programm wird nun komprimiert.
Wichtiger Hinweis: UPX verringert zwar die Dateigröße Ihrer Binärdatei - im Arbeitsspeicher benötigt Ihr Programm mit UPX aber tendenziell mehr Platz als ohne UPX. Wir empfehlen daher UPX nur dann, wenn das Erreichen einer möglichst geringen Dateigröße zum Überleben notwendig ist.
Sollten Fragen auftauchen, können sie im Forum gestellt werden.
Viele Grüße, Euklid
*) Die im Diagramm dargestellten Werte können von Programm zu Programm geringfügig abweichen.