Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Code compilieren...
Ist es Möglich, dass man von einer benötigten bibliothek nur wiklich benötigte Files compiliert und reinlinkt. Weil in manchen Fällen artet das ganz schön aus.
Falls ja, wie mach ich das. Wenn ich z.B. stdio.h includiere, wird automatisch gegen die GLIB gelinkt, und gar nicht erst geschaut, ob ich nicht wo anders auch die Datei definiert habe....
Hoffe ihr könnt mir helfen.....
Mfg
DerLipper[TuX]
01-10-2002, 13:39
mit den Schaltern -I,-i und -L,-l kannst du explizit Include- und Librarydateien angeben, die der gcc verwenden soll. Mit -static werden kann man statisch linken.
Gruß,
Marko
hmm, schon klar.
Mein problem is aber, dass ich nicht diese monster-libraries als ganzes statisch reinlinken will, sonsern eben nur die benötigten teile.
Es würde mir auch nichts ausmachen, wenn ich die benötigten library-files neu compilieren müsste, wärhrend ich das eigentliche Programm compiliere.
Mfg
anda_skoa
01-10-2002, 15:16
Beim statischen Linken werden doch eh nur die Teile der Lib gelinkt, die man braucht, oder?
Ciao,
_
Weiß nicht, sieht nicht so aus.
Ein gcc -o hallo hallo.c -static
Ergiebt eine 2MB große datei für einen printf-aufruf?
Entweder da hat wer schlampig programmiert, oder ich weiß nicht... ;-)
Mgh
anda_skoa
01-10-2002, 17:04
Wrid das executable kleiner, wenn du
#> strip progname
aufrufst?
Ciao,
_
Dann wirft er ja den debug-code raus.....
anda_skoa
02-10-2002, 09:48
Ich dachte, dass er vielleicht bei strip auch die unnötigen symbols wegwirft.
Hängt vielleicht von den Optionen ab, mal man page lesen
Hmm, hast du mal --strip-unneeded versucht?
Ciao,
_
Hmm, ja, das hilft!
Immerhin, von 1,9Mb auf 435kB.
Is zwar immer noch extrem viel für die primitive Aufgabe, aber immerhin!
Vieleicht lässt sich mit schlanken GLIBC-Ersätzen da noch mehr rauskitzeln (Dietlibc)....
Danke nochmal anda_skoda!
Jo, die dietlib bringts!
Mit stsischem Linken nur 50kB, einfach wahnsinn!
Und mit stripi nur noch 5kB!
Das ist extrem!
5kB (dietlibc) im Vergleich zu 500kB GLibc.
Das Ding gibts unter www.fefe.de/dietlibc/
Einach:
make; install bin-i386/diet /usr/local/bin
ompiliert wird ganz normal, nur mit diet:
diet gcc -o test test.c
anda_skoa
03-10-2002, 09:43
Cool, muß ich mir merken!
Ciao,
_
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.