Archiv verlassen und diese Seite im Standarddesign anzeigen : (Linux, C) dynamische Bibliothek erstellen
SeeksTheMoon
21-03-2003, 19:28
Wie kann ich unter Linux eine dynamische Bibliothek (*.so) für C-Programme erstellen?
Bei welchem Programm muss da ich welche Optionen mitgeben?
gcc file1.c file2.c -fpic -shared -o lib.so (fpic ist wichtig!).
Sollte so klappen, beim gcj klappt es jedenfalls so..
Mfg
anda_skoa
22-03-2003, 10:06
-fpic beim Kompikieren aller Object Files, -shared beim Linken in die Lib.
Eventuell braucht man noch -fPIC
Ciao,
_
HackThor
22-03-2003, 23:18
Hi!
Der "Herold" sagt dazu:
gcc -shared -Wl,-soname,<libname.so.x> -o <libname.so.x.y.z> <Objektdateien> <Bibliotheken>
Als Beispiel steht da:
gcc -shared -Wl,-soname,libtoll.so.1 -o libtoll.so.1.2.5 toll.o symtab.o -lc
Wobei:
- "libtoll.so.1" der (richtige) Bibliotheken-Name mit Hauptversionsnummer ist (das "-Wl" heißt daß alles kommagetrennte dahinter an den "ld" weitergeleitet wird - das "-soname ..." ist also für den Linker)
- "libtoll.so.1.2.5" der Name der kompilierten Datei ist
- "toll.o" und "symtab.o" 2 Objektdateien sind aus der die Bibliothek erstellt werden soll
- "-lc" die Anweisung ist das ganze gegen die C-Bibliothek zu linken
Außerdem muß "-fPIC" angegeben werden um den entsprechenden Quellcode zu kompilieren (anda_skoa - you're right :) )
Ich gehe mal davon aus daß es stimmt - der Rest in dem Buch "Linux UNIX-Systemprogrammierung" funktioniert ja auch :D
ciao
Michael
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.