Größe der Executables bei Minimalprogrammen

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Größe der Executables bei Minimalprogrammen

Beitrag von Martin V »

Ich habe hier ein Kommandozeilenutility vorgestellt:

http://www.lazarusforum.de/viewtopic.php?f=11&t=11789

Das Programm hat trotz einem nennenswerten Funktionsumfang aktuell praktisch keine selbst geschriebenen Units, nur eine überschaubare Hauptquelldatei mit 2700 Zeilen, ist also technisch gesehen relativ nahe an "hello world".

Es wundert mich, dass die Größe der Exeutables je nach Zielsystem auch nach strippen noch ziemlich schwankt:

OS/2: 161 kB (mit WDsibyl compiliert, nicht vergleichbar)
Win32: 238 kB
MacOS X: 428 kB
Linux 64 bit: 863 kB

Kann jemand erklären, warum das so stark schwankt? Kann man unter Linux noch extra strip Funktionen aktivieren?

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Größe der Executables bei Minimalprogrammen

Beitrag von Warf »

Nein ohne packing oder ähnliches wird es nicht deutlich kleiner. Das liegt daran das extrem viel direkt reingelinkt werden die bei C oder ähnlichem extern Gelinkt wird
Another issue here is that FreePascal generally statically links (because it is not ABI stable and would be unlikely to be on the target system already even if it was) its own RTL. GCC dynamically links against system libraries

http://wiki.freepascal.org/Size_Matters#Comparisons_with_GCC

Antworten