gcj binaries

Kamikaze

Warrior of Sunlight
Teammitglied
Ich habe es geschafft mit dem gcj41 ein funktionierendes Hello World zu kompilieren. Das Binary ist allerdings ca. 20MB groß. Das finde ich doch ziemlich seltsam. Hat jemand hier ähnliche Erfahrungen gemacht?
 
Kenn mich dafuer zu wenig mit der Interna der GCC aus, aber ich hatte das mal mit nem etwa 50- bis 100-zeiligen C-Programm, da machte der g++ dann ein 30Mbyte-Binary draus. Keine Ahnung woran das lag.

Ist Dein Binary dynamisch oder statisch gelinkt? (Kannst herausfinden mit file <binary>) Wenns statisch gelinkt ist, versuchs mal dynamisch zu linken, statisch gelinkten Binaries werden alle benoetigten Libs mit reingepackt.
 
Sieht mir eigentlich aus als wäre es dynamisch gelinkt. Wenn ich mir jedoch das Binary in vi ansehe, scheint mehr oder weniger eine komplette kleine javavm drin zu stecken. Ich finde zum Beispiel alle Klassennamen unter java.lang im Binary.

file:
Code:
world: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), not stripped
ldd:
Code:
world:
        libm.so.4 => /lib/libm.so.4 (0x284a3000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x284ba000)
        libc_r.so.6 => /usr/lib/libc_r.so.6 (0x285a8000)
        libz.so.3 => /lib/libz.so.3 (0x285cc000)
        libc.so.6 => /lib/libc.so.6 (0x285dd000)
 
Zurück
Oben