Exe-Datei kleiner machen?

Für Fragen rund um die Ide und zum Debugger
happyhippo4u
Beiträge: 4
Registriert: Fr 2. Feb 2007, 22:02
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Exe-Datei kleiner machen?

Beitrag von happyhippo4u »

Hallo Ihr lieben,

Ich bin heute das erste mal mit Lazarus am arbeiten (komme von Delphi7) und habe ein Win32 Teil, mit einem Button erstellt der ein Showmessage macht.

Die erzeugte Exe-Datei ist mit 6426kB recht happig. Mit UPX kriegt man es immerhin auf 2849kB.

Kriegt man die Exe noch kleiner? Wenn ja wie. Oder auch noch mal anders herum gefragt: Was lingt Lazarus da für riesige Sachen hinzu?

Viele Grüße, HH!

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Herzlich Willkommen im Forum.

In die Exe werden die kompletten debuginfos geschrieben, weshalb sie so groß ist.
Abgesehend avon enthält die Exe bereits einige Dinge, die bei umfangreicheren Sachen benötigt werden (könnten) daher steigt die Größe mit zunehmender Programmkomplexität nicht so stark an, wie bei anderen Sprachen. So sind bereits einige Libraries in der exe vorhanden, auch wenn noch nicht zwangsläufig für ein Button und ein Showmessage benötigt. (xml, Grafik, LCL-Schnittstellen und FP-Runtime)

ich nehm mal an, du hast nur UPX verwendet?

Wesentlich kleiner wird die Exe, wenn du zuvor ein Strip durchführst. Die strip.exe liegt schon im fpc-Ordner unter bin dabei.
Strip entfernt dabei die Debuginformationen aus der Exe.
So erhältsts du mit strip und anschließendem UPX schätzungsweise 300 bis 500kB, je nach Version.

Siehe auch http://www.lazarusforum.de/viewtopic.ph ... ight=strip" onclick="window.open(this.href);return false;

Und das Original:
http://wiki.lazarus.freepascal.org/Laza ... _so_big.3F" onclick="window.open(this.href);return false;

Christian
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:

Beitrag von Christian »

Monta kannst du nicht mal was wie ne wilkommens seite machen ?
Ich mein diese Information steht überall im zusamenhang mit lazarus auf den ersten 3 seiten und hier wurdes auch schon 5x gefragt aber das scheint nich zu reichen. Sorry happyhippo geht nicht gegen dich du bist einer von vielen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
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:

Beitrag von Euklid »

Weiß jemand, wann es einen internen Debugger/Linker geben wird? Dann hätte sich das Problem ja vermutlich erledigt...

@happyhippo:
FreePascal/Lazarus sind im Grunde nicht dran schuld. Die Binärdateien sind wegen den externen Debugger (GNU Debug) und den externen Linker LD so groß. Interne Debugger/Linker sind offenbar schon geplant - dann sollten diese Probleme behoben worden sein.

pluto
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)

Beitrag von pluto »

gibt es nicht schon einen im Verzeichnis von lazarus zum spielen ?
MFG
Michael Springwald

Christian
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:

Beitrag von Christian »

Ich denk das wird noch ne weile dauern, da wird nicht soo viel dran gearbeitet
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

obwohl ja schon Laz 9.21 mit FPC 2.1 ohne Smartlinking ungefähr 30% an Codegröße nach Strip und UPX einspart im Vergleich zu Laz 9.20 und FPC 2.0

Christian
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:

Beitrag von Christian »

Ja das liegt hauptsächlich am internen Linker der ist halt auch etwas besser als der gnu linker :p
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
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:

Beitrag von Euklid »

Hallo Leute!

Ich habe hierzu nochmal eine Frage:
Strip funktioniert wunderbar für 32-bit-Binärdateien. Frage: Gibt es auch ein Strip-Programm für 64-bit-Binärdateien ?

Das "normale" strip funktioniert hier bei mir nicht. Bei der 64-bit-Lazarusversion ist kein 64-bit-Strip beigelegt. 17 MB pro einfachem 64bit-Programm sind schon gewaltig. Naja, vielleicht weiß jemand von Euch, wie man die Datei kleiner bekommt (außer upx).

Gruß, Euklid

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Beitrag von knight »

wie man die Datei kleiner bekommt (außer upx).
Wenn du FPC >=2.0.4 verwendest:
Projekt -> Compilereinstellungen -> Linken
* Zeilennummern in... anzeigen (deaktivieren)
* Debuggersymbole... entfernen (aktivieren)
* Smart Linken (aktivieren)

knight

Euklid
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:

Beitrag von Euklid »

Danke! Das sind die Vorzüge des neuen FPC, ne?


Euklid

Christian
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:

Beitrag von Christian »

Wiso neu, der 2.0.4 ist doch schon etwas betagt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
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:

Beitrag von Euklid »

Ist aber trotzdem neuer ;)

Habe zur Zeit noch Lazarus 0.9.22 installiert, mit der betagten FPC-Version...

Christian
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:

Beitrag von Christian »

Ne, das tu ich mir net mehr an dazu hat der 2.2 zu viele schöne neue Features.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
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:

Beitrag von Euklid »

Christian hat geschrieben:dazu hat der 2.2 zu viele schöne neue Features.
Genau, werde auch auf 2.2 umsteigen, sobald ich wieder programmiere.

Euklid

Antworten