• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Probleme bei Installation von CC++

Tob[i]

Newbie
Ich habe derzeit ein Problem bei der Installation der CC++ Library unter Suse 9.1.

Da ich keine Rootrechte habe, die Bibliothek aber benötige,
bin ich folgendermaßen vorgegangen:
1. Datei entpackt
2. ./configure --prefix=$HOME/opt/
3. make
4. mkdir opt, mkdir opt/bin, mkdir opt/lib
5. make install
-> soweit hat er alles gemacht wie er es sollte
Nun steh ich vor dem Problem, wie bzw. wo ich eintragen muss, dass mein Programm, das die Bibliothek benötigt, weiß, wo CC++ installiert ist.
Hierzu habe ich die Datei ./profile (bash 2.0) in meinem Home-Verzeichnis erstellt und folgenden Eintrag gemacht:
export CCPP2_PATH=$HOME/opt/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PAT:H$HOME/opt/lib

Anscheinend hab ich aber was falsch gemacht, da CC++ nicht von meinem Programm gefunden wird.
Sieht jdm. wo der Fehler liegt?
 
A

Anonymous

Gast
zuerst könntst du mal mit ldd /PATH/ZUM/PROPGRAM/PROGRAMM
nachschauen welche LIBs dein Programm wo suchen würde.
ansonsten gilt diese allgemeine Regel
Libraries installieren und aktualisieren
Wenn neue Libraries installiert werden sollen, dann stellt sich die Frage, wohin. Zunächst einmal bieten sich die Verzeichnisse /lib, /usr/lib und /usr/local/lib an. Sollen aber neue Verzeichnisse angelegt werden, die Libraries enthalten, dann muß das der internen Verwaltung der Libraries mitgeteilt werden.

Die interne Verwaltung der Libraries wird durch den Aufruf des Programms ldconfig vollzogen. Dieses Programm wartet den Library Cache und erstellt automatisch die notwendigen symbolischen Links auf Libraries. Der Librarie-Cache liegt in der Datei /etc/ld.so.cache und enthält eine binär codierte Liste aller dem System bekannten Libraries.

Damit ldconfig diese Datei erstellen kann und auch neu hinzugekommene Libraries dort aufgenommen werden, muß ldconfig wissen, welche Verzeichnisse nach Libraries durchsucht werden sollen. ldconfig durchsucht zunächst die beiden Verzeichnisse /usr/lib und /lib, danach alle Verzeichnisse, die in der Datei /etc/ld.so.conf aufgelistet sind.

Wenn also ein neues Programm foo installiert wird, das seine Shared Libraries im Verzeichnis /usr/local/foo/lib ablegt, so müssen wir nur dieses Verzeichnis in die Datei /etc/ld.so.conf aufnehmen. Nach der Installation neuer Libraries und/oder der Neuaufnahme von Pfaden in der Datei /etc/ld.so.conf muß das Programm ldconfig ausgeführt werden, bevor die neuen Libraries verwendet werden können. Erst nach dem Aufruf von ldconfig stehen sie ja in der Datei /etc/ld.so.cache und sind somit dem Linker/Loader bekannt.

Also muss auch der Loader der Libraries im LINUX wissen wo er die Libs findet die er laden darf und soll. Ob du allerdings das ganz ohne rootrechte hin bekommst ????? Ansonsten bleibt wohl nur während der Compilierung auf dynamische Libraries zu verzichten und statisch linken.
Oder mal auf allen vieren mit ner Tasse Kaffee beim root vorstellig zu werden.:wink:

robi
 
Oben