Am 13 Jul 2005 um 10:16 hat Boris Höffgen geschrieben:
Hallo,
wie erreiche ich es, dass ich mehrere Versionen von Libs parallel betreiben kann?
Z.B. Im Verzeichnis /usr/local/include/: bib-1.0/ bib-2.0/
Die Includes kann ich dann in den Headern der Programme ansprechen (#include
). Aber wie bekomme ich es mit den Libs hin? Z.B. Im Verzeichnis /usr/local/lib/: bib-1.0/bla.so bib-2.0/bla.so
So nicht. Denn dabei hängt das Laden der richtigen Library von der Suchreihenfolge des Loaders ab. (ldconfig)
oder
bla.so.1.0 bla.so.2.0???
Das ist eher die Regel bei Linux. Und entsprechende Symlinks ohne Minor.Micro zeigen auf die eigentliche Datei. Hier besteht aber immer noch das Problem der gleichzeitigen Benutzung beider Dateien. Wenn Du wirklich beide explizit gleichzeitig verwenden möchtest, verstehe ich Dein Problem nicht. Verwende beide, aber mit z.B. bla_1.so und bla_2.so. Ich sehe darin aber keinen Sinn. Ich denke, Du willst Version 1 im Falle von nicht existierender Version 2 verwenden. Dann kann Dynamic Loading helfen. Ist aber bei aufwendigeren Modulen entsprechend mit Arbeit verbungen. Besser finde ich da diese Lösung, wenn Du kein Dynamic Loading verwenden möchtest: Bla_2 linkt bla_1 und Dein Programm linkt bla_2. Programm_1 -> Bla_1 Programm_2 -> Bla_2 -> Bla_1 Bla 2 implementiert nur die Funktionen der Version 2 und delegiert die der Version 1 an Bla 1. Einfacher kann ichs auch nicht machen. Lothar -- Lothar Behrens | Rapid Prototyping ... Rosmarinstr 3 | 40235 Düsseldorf | www.lollisoft.de