Linux: Libraries in Nicht-Standard-Verzeichnis, wie findet mein Programm sie?
-
Hallo Leute,
ich habe zwei Bibliotheken (CLN, GiNaC) installiert in einem Nicht-Standard-Verzeichnis "/usr/blabla/". Ich moechte nun diese beiden Bibliotheken benutzen koennen, indem ich sie folgendermassen in mein Programm einbinde
#include <cln/cln.h>
#include <ginac/ginac.h>(die zweite Zeile, sollte zumindest nach Ginac-Tutorial funktionieren, wenn alles standardmaessig installiert waere).
Ich weiss aber nicht genau, wie ich jetzt dem Compiler mitteile, dass die Bibliotheken in diesem Verzeichnis liegen. Mein bisheriger Versuch mit der rpath-Option ist leider fehlgeschlagen (test.cpp bindet nur CLN ein):g++ -Wl,rpath,/usr/blabla -lcln test.cpp
test.cpp:5:21: error: cln/cln.h: No such file or directory
Im Allgemeinen moechte ich die Loesung fuer folgendes Problem: Wenn ich als nicht-Root irgendeine noch nicht global installierte C++-Bibliothek benutzen moechte (und sie deshalb z.B. lokal in meinem Homeverzeichnis kompiliere), wie weise ich dann meine Programme darauf hin, dass die entsprechende Bibliothek sich in in einem speziellen Nicht-Standard-Verzeichnis befindet?
Danke im Voraus!
P.S: Arbeite mit Suse Linux.
-
Schau mal ins GCC Handbuch
gcc -I/usr/blabla -L/usr/blabla
-I für den Includepfad und -L für den Librarypfad.
Wenn es dynamische Libs sind, musst du ggf. noch dem runtime Linker sagen, wo er die libs finden kann. Entweder in dem du LD_LIBRARY_PATH setzt oder besser in dem du einen ld.config Eintrag schreibst
echo /usr/blabla > blabla.conf
sudo mv blabla.conf /etc/ld.so.conf.d/
sudo ldconfig
-
Welches SuSE nutzt du denn? SLED oder OpenSUSE? Welche Version? Warum willst du die Dateien in einen nicht-standard Ordner installieren?
Kennst du http://software.opensuse.org/search ? CLN gibt es da für so ziemlich alle Versionen, für GiNaC ist ein src-rpm in factory, das kannst du dir herunterladen und mit
rpmbuild --rebuild PAKETNAME
neu für deine Version bauen.
Nutz den Paketmanager, wenn es keinen sehr guten Grund dagegen gibt.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.