Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

25.03.2007, 01:10

Shared Libraries beim Kompilieren von BDB

Hallo Leute.

Ich taste mich Schritt für Schritt an die Arbeit mir Linux heran, bin aber noch nicht der große Auskenner. An folgendem Problem beim Kompilieren eines Programms sitze ich nun schon seit einer ganzen Weile ohne Fortschritt:

Beim Durchlauf von configure eines Programms, das unter anderem die Berkeley-DB verwenden soll, erhalte ich am Ende folgende Meldung

Quellcode

1
2
3
4
5
6
  ...
checking for db.h... no
checking in /usr/local/BerkeleyDB.3.1/include for db.h... yes
checking in /usr/local/BerkeleyDB.3.1/lib for library -ldb... no
configure: no Berkeley DB version 3 or higher found
configure: error: no BerkeleyDB could be found


Wenn ich das richtig verstanden habe, findet das Skript im Installationsverzeichnis unter include die Headerdatei, aber unter lib nicht die shared libraries (dort sind auch keine (bloß libdb.a)), die dann wahrscheinlich mit -ldb dazugelinkt werden sollen. Mein Versuch, beim Kompilieren des DB-Pakets auch über eine zusätzliche Option das Erzeugen der shared libraries zu veranlassen, schlug fehl. Ich habe in BDBs configure außer --libdir zur Angabe des Verzeichnisses für "object code libraries" nichts passendes finden können.

Bin ich auf der richtigen Spur oder geht meine obige Vermutung schon in die falsche Richtung? Wie teile BDBs configure mit, daß ich beim Kompilieren auch die shared libraries haben möchte?

Darts

Up the Irons!

  • »Darts« ist männlich

Beiträge: 614

Wohnort: Braunschweig

Beruf: Schüler

  • Nachricht senden

2

25.03.2007, 03:53

cofigure findet halt die BDB-libs nicht... Wo sind die denn? Korrekt installiert? Musst du ihm schon geben.. ^^
You are registered Linux user #393303.

3

25.03.2007, 12:17

Zitat

Original von Darts
cofigure findet halt die BDB-libs nicht...


Ja, das war ja meine Vermutung. Und das hier ...

Zitat

Wo sind die denn?

... war ja genau die Frage am Ende meines Ausgangspostings.

Ich finde in BDBs configure keine Option, um etwas zu den shared libraries anzugeben. Mit --libdir kann ich zwar spezifizieren, in welchem Verzeichnis die object code libraries landen, aber das Ergebnis ist bloß das Archiv libdb.a in diesem Verzeichnis. libdb.a enthält nur die *.o, nicht jedoch die shared libraries (*.so), die das andere Programm braucht.

Um also die Frage nochmal zu wiederholen:

Wie teile BDBs configure mit, daß ich beim Kompilieren auch die shared libraries haben möchte? Und wie gebe ich den Zielort an?

Darts

Up the Irons!

  • »Darts« ist männlich

Beiträge: 614

Wohnort: Braunschweig

Beruf: Schüler

  • Nachricht senden

4

25.03.2007, 12:23

Ok, sorry... war mir zu kryptisch zu der späten Stunde ^^

Also normalerweise installiert BDB die shared libs automatisch mit, gibt nur 'ne Option zum Deaktivieren.

Kannst ja mal
# locate libdb-3.1.so
versuchen, irgednwo müssen die ja sein..
You are registered Linux user #393303.

5

25.03.2007, 13:47

Inzwischen hab ich eine Suche gestartet und einige Libraries unter /usr/lib gefunden. Allerdings stammen die dem Datum nach nicht von dieser Installation ... Hm, seltsam.

In meinem BDB-Installationsverzeichnis hab ich jetzt im Unterverzeichnis lib einen symbolischen Link namens libdb.so auf /usr/lib/libdb-3.1.so gesetzt, und nun findet das configure meines Programms die Bibliotheken auch. Hing anscheinend am Namen, denn mit libdb-3.1.so gab's die gleiche Fehlermeldung wie im ersten Posting beschrieben.

Funktioniert jetzt also. Trotzdem wüßte ich natürlich gerne, wie ich ggf. das Verzeichnis für shared libraries bei einer solchen Installation angeben kann. Ist ja blöd, wenn ich jedesmal erst suchen muß, wohin die verstreut wurden ...

Danke schonmal für deine Hilfe, Darts.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

6

27.03.2007, 12:33

normalerweise werden die libs automatisch gefunden, wenn die pfade in /etc/ld.so.conf eingetragen sind und immer mal ein ldconfig ausgeführt wird.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Thema bewerten