Shared library

Hallo, ich möchte eine Anwendung entwickeln und habe mir eine .so erstellt, die ich in meiner Hauptanwendung benutze.

Kann ich das irgendwie machen, dass ich die einfach ins gleiche Verzeichnis packe oder wie funktioniert das.
Mit dem compilieren gings:
cc -L. -lmeinebibliothek
Habe das bisher nicht hinbekommen, wenn ich dann mit „ldd anwendung“ die shared librarys anzeigen liess hat er mir immer was von not found für diese Library gesagt und beim ausführen hat das Programm zwar was gemacht, aber es ist nichts passiert…

Ich möchte die .so eigentlich nicht irgendwo in ein /lib Verzeichnis packen sondern bei der Anwendung belassen, weil sie eh von keiner anderen Anwendung benutzt wird und in dem Verzeichnis zu finden sein soll.

Bruno

hi,

Ich möchte die .so eigentlich nicht irgendwo in ein /lib
Verzeichnis packen sondern bei der Anwendung belassen, weil
sie eh von keiner anderen Anwendung benutzt wird und in dem
Verzeichnis zu finden sein soll.

wenn Du vor dem Aufruf des Programms / von ldd den LD_LIBRARY_PATH entsprechend verbiegst (LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/add/what/so/ever && ldd programm) klappt es. — Idealerweise packt an das in ein kleines Startskript :smile:

al

Aha… aber ob LDD das blickt ist mir ansich egal… wichtig ist nur, dass mein programm das dann blickt.
Sucht der nicht ob im gleichen Verzeichnis die Datei zufällig liegt?

Bruno

Aha… aber ob LDD das blickt ist mir ansich egal… wichtig ist
nur, dass mein programm das dann blickt.

tut es, ausser es erzeugt zur Laufzeit dynamisch Bytecode und führt diesen ausserhalb des Kontexts der aufrufenden Shell auf (der StarOffice Installer macht das zum Bleistift so).

Sucht der nicht ob im gleichen Verzeichnis die Datei zufällig
liegt?

nicht *zwangsläufig*. Deswegen besser dem Programm mit auf den Weg geben, dann geht nichts schief.

al