Zum Inhalt springen

Shared Libraries erstellen .c -> .so


Varrius

Empfohlene Beiträge

Hi,

ich soll gerade in einem Projekt aus mehreren .c Dateien eine shared librarie mit der Endung .so erstellen. Ich hab auch schon ein wenig gegoogelt, leider nur komische Befehle gefunden, mit denen ich nichts anfangen konnte :)

hier ein paar Beispiele:

gcc -fPIC -c xxx.c xxy.c

ld -shared -soname yyy.so -o yyy.so xxx.o xxy.o

gcc x.o -L . -lfb

ich hoffe ihr könnt mir helfen :D

Varrius

Link zu diesem Kommentar
Auf anderen Seiten teilen

gcc -fPIC -c xxx.c xxy.c

Damit wird eine Objektdatei aus dem Quellcode erzeugt, welche "Position Independent Code" ("PIC") enthält. Dies ist notwendig, um eine Shared Library an eine beliebige Stelle im Speicher laden zu können.

ld -shared -soname yyy.so -o yyy.so xxx.o xxy.o

Damit wird eine Shared-Library mit dem Namen "yyy.so" aus den Objektdateien "xxx.o und xxy.o" erzeugt und in der Shared-Lib "yyy.so" abgespeichert.

gcc x.o -L . -lfb

damit linkst Du die Library "fb" (mit dem Namen "libfb.so" bzw. "libfb.a"), welche sich im aktuellen Verzeichnis befindet ("-L.") zu einer Objektdatei mit dem Namen "x.o". Wobei hier eigentlich noch der Name des Programms mit angegeben werden sollte: "gcc -o program x.o -L. -lfb"

Nic

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich hab den burger mal gegessen und die kuh tod sein lassen ;)

nein, wir konnten nun nachvollziehen, wie diese .so erstellt wurde, da wir ein nettes script gefunden haben :D

das problem ist nun, das die neue .so datei von 2,6 auf 2,1 MB "schrumpft" ist, sprich als die datei vor 2 jahren erstellt wurde war sie 2,6MB und heute war sie nur 2,1MB

kann das an den seit damals verbesserten compilern liegen? da sich die dateien eigentlich nicht geändert haben dürften bzw. weg sind, da das mit clearcase nachzuvollziehen wäre, wir aber nix gefunden haben

Link zu diesem Kommentar
Auf anderen Seiten teilen

kann das an den seit damals verbesserten compilern liegen? da sich die dateien eigentlich nicht geändert haben dürften bzw. weg sind, da das mit clearcase nachzuvollziehen wäre, wir aber nix gefunden haben

Kann es durchaus. Aktuelle Versionen des GCC haben ziemlich gute Optimierungen in Richtung Dead-Code-Elimination und Schleifenoptimierung.

Zwar ist eine Reduzierung um knapp 20% schon sehr aussergewoehnlich, aber nicht ausgeschlossen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...