
lazarus linux=> ausführbare datei zu groß
lazarus linux=> ausführbare datei zu groß
moin ich hab ein einfaches programm unter linux geschrieben mein projekt auf gtk2 umgestellt und nun hab ich dateien die vieeeeel zu groß sind (7mb) ichweis auch nicht wie ich das ändern kann debuginfos hatte ich in den compiliereinstellungen ausgeschaltet zumindest das was ich gefunden habe.. 

-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Das auschalten der Debuginfos in den Compilereinstellungen funktioniert nicht. Macht auch wenig sinn denn dann kannst du ja nicht mehr Debuggen.
"strip meinexecutable"
entfernt dir die Debugsymbole.
Und warum jammerst du über 7mb ?
Wegen der 640 kb Grenze im Hauptspeicher ?
Oder weil du dann nur 2 Programme auf deine 20 mb Festplatte bekommst ??
"strip meinexecutable"
entfernt dir die Debugsymbole.
Und warum jammerst du über 7mb ?
Wegen der 640 kb Grenze im Hauptspeicher ?
Oder weil du dann nur 2 Programme auf deine 20 mb Festplatte bekommst ??
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Delphi benutzt auch kein freies Debugformat. Bei Lazarus executables kannst jeden beliebigen debugger zum debuggen nehmen versuch das mal mit ner Delphi Applikation.
Und UPX würd ich hier nicht immer anführen das hat nichts mit der Grösse zu tun. Delphi Executables kannst auch packen.
Und UPX würd ich hier nicht immer anführen das hat nichts mit der Grösse zu tun. Delphi Executables kannst auch packen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Code: Alles auswählen
user@linux:~$ strip meinBinary
Trotzdem noch eine Frage:
kann es nicht auch sein, dass benötigte Libs oder Teile davon (wie auch immer, das ist für mich Neuland) mit in die Binary includiert werden. Das heißt dann doch "statisch linken", oder? Und wenn ja - würde es dann nicht (theoretisch) gegen GPL verstossen? Also kann es doch wieder nicht sein, dass GTK2-Libs da mitreinkompiliert werden. Oder stehe ich jetzt daneben?
Reicht "strip" schon völlig aus? Ich habe gerade versucht, die manpages von strip zu lesen, leider ist die Beschreibung für einen Laien wie mich wenig hilfreich.

Könnte bitte ein Wissender Licht in meinen Geist bringen und das erklären, wie denn "remove symbols from files" genau funktioniert, oder was da geschieht?
Danke!
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
soweit ich weiß, werden nur Debugg-Infos Entfernt, mehr nicht:
http://wiki.lazarus.freepascal.org/Size_Matters/de" onclick="window.open(this.href);return false;
http://wiki.lazarus.freepascal.org/Size_Matters/de" onclick="window.open(this.href);return false;
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Hallo Leute!
Betreffende Teile stehen unter der LGPL. Die ist wesentlich lockerer gefasst als die GPL...
Diese Informationen sind recht reichhaltig - daher sind die Binärdateien recht groß. Mit strip kann man die Informationen dann entfernen.
Hier die Schritt-für-Schritt-Anleitung für strip unter Linux - unter Windows ähnlich.
1. Konsole starten
2. In das Verzeichnis wechseln, in dem das kompilierte, viel zu große Programm steckt.
3. Nun in die Konsole eingeben:
Mit upx erreicht man dann Dateigrößen unter einem MB.
Viele Grüße,
Alexander
Das ist eine gute Frage! Hier die Antwort:bembulak hat geschrieben:kann es nicht auch sein, dass benötigte Libs oder Teile davon (wie auch immer, das ist für mich Neuland) mit in die Binary includiert werden. Das heißt dann doch "statisch linken", oder? Und wenn ja - würde es dann nicht (theoretisch) gegen GPL verstossen?
Betreffende Teile stehen unter der LGPL. Die ist wesentlich lockerer gefasst als die GPL...
Strip sollte mit der Option --strip-all gestartet werden. siehe unten.Reicht "strip" schon völlig aus? Ich habe gerade versucht, die manpages von strip zu lesen, leider ist die Beschreibung für einen Laien wie mich wenig hilfreich.![]()
Genau kann ich dir das nicht erklären. Es ist wohl so, dass, wenn man ein Programm debuggen will, zusätzliche Informationen in die Binärdateien geschrieben werden (wo der Fehler auftritt, in welcher Unit, welcher Zeile u.s.w. ist ja von Interesse).Könnte bitte ein Wissender Licht in meinen Geist bringen und das erklären, wie denn "remove symbols from files" genau funktioniert, oder was da geschieht?
Danke!
Diese Informationen sind recht reichhaltig - daher sind die Binärdateien recht groß. Mit strip kann man die Informationen dann entfernen.
Hier die Schritt-für-Schritt-Anleitung für strip unter Linux - unter Windows ähnlich.
1. Konsole starten
2. In das Verzeichnis wechseln, in dem das kompilierte, viel zu große Programm steckt.
3. Nun in die Konsole eingeben:
Es ist dabei unter Linux wichtig, dass zwischen Groß - und Kleinschreibung unterschieden wird. Programmname inklusive Dateiendung, falls vorhanden (unter Windows *.exe).strip --strip-all Programmname
Mit upx erreicht man dann Dateigrößen unter einem MB.
Viele Grüße,
Alexander