On Thursday 16 November 2000 18:57, Reinhard Foerster wrote:
On Wed, Nov 15, 2000 at 07:12:11PM +0100, Konrad Rosenbaum wrote:
Ich glaube hier sollte man was klaeren:
die Begriffe "shared lib", "shared object" und "DLL" sind synonym (fuer RTL II Fans: sie bedeuten das Gleiche).
Aha, das habe ich registriert.
nochmal ganz deutlich: shared lib = Datei im ELF Format mit Endung .so shared object = Datei im ELF Format mit Endung .so (so wie [s]hared [o]object) DLL = Synonym fuer shared Lib aus der M$-Welt
Als s.object bezeichnet man das Teil, wenn man es gerade kompiliert oder _nur_ zur Laufzeit laedt. Als s.lib bezeichnet man es, wenn es vom ELF-Loader im Kernel gerade geladen wird. Also nur Haarspalterei, da es sich um die selbe Datei handelt.
mit .so Dateien habe ich zwei Moeglichkeiten: a) sie per Headerdatei einbinden und den Linker einen Eintrag in mein Program machen lassen, der von Kern als "ladt das Ding fuer mich, weil ich zu faul dazu bin" interpretiert wird. b) ich oeffne sie per dlopen(3) und lasse mir (Funktions-)Pointer auf die Symbole darin geben und rufe die entsprechenden Pointer auf
Beide Methoden koennen bei ein und derselben .so ihre Berechtigung haben. (Z.B. kann Programm A sagen, ich brauche SSL auf jeden Fall und Programm B laedt SSL nur bei Bedarf.)
Die Unterscheidung ist also nicht s.object oder s.lib, sondern linken zur compile-Zeit oder zur Laufzeit.
Funktionen direkt aufzurufen. Beides arbeitet mit den selben Mechanismen, der Unterschied ist wann sie geladen werden und wie komfortabel es sich programmieren laesst.
Aha, zwischen den beiden (oder 3) "Synonymen" bestehen also doch deutliche Unterschiede. Das widerspricht deiner Aussage von oben. (fuer RTL-2 Fans: "sich widersprechen" bedeuted, daß man 2 Aussagen trifft, die nich beide gleichzeitig wahr sein kann.)
siehe oben.
Konrad