# Unix libraries



## ctac (18. Februar 2007)

Hallo alle zusammen,

hab noch ein wenig gezweifelt in welches Thema ich posten soll.
Hier mein Problem. Ich hab einen Zugang zum Uni-Cluster und möchte da mein programm laufen lassen (c++). Allerdings werden im meinem Programm mehrere Bibliotheken verwendet, die normalerweise root installieren sollte. Da ich kaum glaube, dass der root das so einfach durchgehen lässt, habe ich die bibliotheken erstmal lokal installiert und das programm erfolgreich kompiliert. Allerdings bekomme ich immer wieder die Meldung:

cannot open shared object file, 
Also möchte die "Exe", bzw. die "bin" selbst eine oder andere lib laden. Aber die lib ist nicht unter /etc/ld.so.conf aufgelistet, und einen ldconfig kann ich auch nicht ausführen

.. Ideen =?

Vielen Dank


----------



## deepthroat (20. Februar 2007)

Hi.

Eine Möglichkeit ist einfach die Umgebungsvariable LD_LIBRARY_PATH zu setzen. Bsp:
	
	
	



```
export LD_LIBRARY_PATH=$HOME/lib
./my_prog
```

Eine weitere Möglichkeit wäre den Pfad explizit schon beim Linken in das Binary zu schreiben:
	
	
	



```
gcc -Wl,-rpath,${HOME}/lib -o mylib.so ...
```

Siehe auch http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

Gruß


----------

