Hallo Philipp, * Philipp Thomas schrieb am 02.Sep.2002:
B.Brodesser@t-online.de (Bernd Brodesser) [1 Sep 2002 11:24:33 +0200]:
Die Frage ist, was passiert, wenn ein Programm gegen libname.so.<hauptversion>.<minorversion> gelinkt ist, der Anwender aber libname.so.<hauptversion>.<andereminorversion> hat.
Das Programm wird nicht laufen, da die Abhängigkeit nicht erfüllt ist. Aber die einzigen Bibliotheken, die ich kenne und deren Soname die volle Version besitzt sind die zu den binutils gehörenden Bibliotheken (libbfd, lipopcodes).
Da haben wir anscheinend aneinander vorbeigeredet. Angenommen ein Programm ist auf libname.so.<hauptversion> gelinkt und libname.so.<hauptversion> ist ein SymLink (Oh, oh, hier hat das Wort link eine vollkommen andere Bedeutung) auf libname.so.<hauptversion>.<minorversion>. Ich installiere mir dieses Programm und ich habe auch libname.so.<hauptversion> bei mir ist es aber ein Symlink auf libname.so.<hauptversion>.<neuereminorversion> Wenn das Programm dann bei mir nicht läuft, dann könnte man sich das mit major- und minorversion auch schenken und nur eine Versionsnummer verteilen.
Und was ist, wenn er eine höhere hauptversion hat?
Auch dann funktioniert es nicht und das ist gut so! Eben weil dem so ist, können Programme koexistieren, die unterschiedliche Versionen der gleichen Bibliothek verwenden.
Wieso? Wenn alles auch mit der neusten Version liefe, dann gäb es doch auch keine Probleme.
Und was nimmt ./configure, wenn man selbst kompiliert?
Die Bibliothek, auf die lib<name>.so verweist.
Gut.
Die lib<name>.so Dateien werden i.d.R. ausschliesslich vom statischen Linker zum Erstellen des Programmes benötigt.
Du meinst lib<name>.a so steht für shared object, a für archiv.
Nein, ich meinte durchaus lib<name>.so. Beachte, dass ich vom statischen Linker, also dem normalen ld und nicht vom statischen Linken sprach.
Huch, ich kenne nur den ld. Was ist denn ein dynamischer Linker? Bernd -- Bitte die Etikette beachten: http://www.suse-etikette.de.vu/etikette.html Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen, sonst nichts. |Zufallssignatur 4