Bitcoin: configure: erreur: en-têtes libdb_cxx manquants (netbsd)

Créé le 15 sept. 2013  ·  35Commentaires  ·  Source: bitcoin/bitcoin

ces fichiers se trouvent dans / usr / pkg / include / db4

samsa% ls / usr / pkg / include / db4
db.h db_185.h db_cxx.h

Bug Build system

Commentaire le plus utile

sudo apt-get install libdb ++ - dev résout mon problème.

Tous les 35 commentaires

Ce chemin devrait déjà être recherché si / usr / pkg / include est dans votre chemin d'inclusion ... Pouvez-vous publier un config.log?

Même problème ici:

CentOS s'exécutant sur une machine virtuelle.

localiser db_cxx.h
/usr/include/db_cxx.h
/usr/include/db4/db_cxx.h
/usr/share/doc/db4-devel-4.7.25/ref/upgrade.3.0/db_cxx.html
_

Contenu de config.log: http://pastebin.com/N1jW9GuF

Toujours un problème avec le dernier master? AFAIK il y a eu des changements avec le nouveau système autotools donc peut-être que vous pouvez réessayer.

Même problème sur ubuntu 13.04.

sudo apt-get install libdb ++ - dev résout mon problème.

Évidemment, vous obtenez cette erreur si libdb n'est pas installé ... si vous lisez attentivement, l'affiche d'origine a la bibliothèque installée mais elle n'est pas détectée, donc ce n'est pas le même problème.

Puisqu'il n'y a pas de libdb ++ dans le repo officiel CentOs, j'ai fait ce qui suit pour résoudre ce problème

  1. Télécharger les sources de BerkeleyDb 4.8
  2. Aller à/ build_unix /
  3. ../dist/configure --prefix = / usr / local --enable-cxx
  4. faire
  5. (en tant que root) effectuez l'installation

Alex, merci!

J'ai le même problème: j'ai compilé BDB à partir de la source mais je ne veux pas l'installer. Puis-je pointer le script de configuration vers mon db_cxx.h d'une manière ou d'une autre?

Edit: je l'ai ajouté à ./src/m4/bitcoin_find_bdb48.m4 :

  bdbdirlist=/path/to/compiled/db-4.8.30.NC/build_unix/build/include

Travaux.

une meilleure option serait d'ajouter une option --with-db4 pour configurer

Oui, ou BDB_CFLAGS / BDB_LIBS comme proposé dans # 3550

Cela peut être résolu en procédant comme suit:
cd ~/db-4.8.30.NC/build_unix make sudo make install
Vérifiez qu'il existe un dossier BerkeleyDB.4.8 dans / usr / local
ls /usr/local
puis créez un lien symbolique:
ln -s /usr/local/BerkeleyDB.4.8 /usr/include/db4.8
puis faites:
ln -s /usr/local/db4.8/include/* /usr/include ln -s /usr/local/db4.8/lib/* /usr/lib

Tout avantage du lien symbolique par rapport à quelque chose comme:

echo "/usr/local/lib" > /etc/ld.so.conf.d/db-4.8.30.conf
ldconfig

Ou créez une bibliothèque statique et non partagée, pour ne pas avoir à installer la bibliothèque sur le chemin de recherche de votre système.

[centos 6.5, version actuelle de bitcoin] Il semble que j'ai compilé avec succès bitcoind, cependant, lorsque j'essaye de l'exécuter, j'obtiens ce qui suit:

./bitcoind: error while loading shared libraries: libdb_cxx-4.8.so: cannot open shared object file: No such file or directory

Ayant suivi les instructions ici, j'ai téléchargé et compilé la source 4.8, mais je ne parviens pas à obtenir aucun dossier BerkeleyDB.4.8 à générer dans / usr / local.
J'ai cependant localisé libdb_cxx-4.8.so dans db-4.8.30.NC/build_unix/.libs

Si je copie ou référence simplement ce fichier .so aux bons endroits, cela devrait-il résoudre le problème?
En utilisant 'Locate libdb_cxx', j'obtiens des entrées pour 'libdb_cxx.so' et 'libdb_cxx-4.7.so' dans / usr / lib64, mais c'est tout.

Dois-je pointer bitcoin / src / m4 / bitcoin_find_bdb48.m4, ligne: 7 , vers
'bdbdirlist = / root / berkeley-db / db-4.8.30.NC / build_unix / .libs'? (le répertoire db-4.8.30.NC/build_unix/build/include mentionné ci-dessus n'existe pas pour moi).

La copie de libdb_cxx-4.8.so do / usr / lib64 ne semble pas résoudre le problème.

Mes excuses d’avance pour ma compréhension limitée. Je suis toujours en train de me familiariser avec plusieurs couches d'abstraction impliquées ici. Merci d'avance. Article complet ici: https://bitcointalk.org/index.php?topic=588032

dlio, avez-vous essayé de 'make install' à partir de 'db-4.8.30.NC/build_unix/'? Il devrait mettre de nombreux fichiers à leur place si je me souviens bien.

Merci pour la réponse rapide coincapsig.

J'ai essayé la méthode suivante d'Alexander comme ci-dessus:
«1. Télécharger les sources de BerkeleyDb 4.8

  1. Accédez à / build_unix /
  2. ../dist/configure --prefix = / usr / local --enable-cxx
  3. faire
  4. (en tant que root) make install`

mais faire un locate libdb_cxx ne montre toujours que ibdb_cxx.so et libdb_cxx-4.7.so comme étant dans / usr / lib64 /

Je sens votre douleur dilo, j'ai exactement le même problème sur cette version:
Linux version 2.6.32-431.11.2.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)) # 1 SMP Tue 25 mars 19:59:55 UTC 2014

Voici la sortie des 2 dernières lignes avant l'échec de ./configure.

vérification des en-têtes Berkeley DB C ++ ... non
configure: erreur: en-têtes libdb_cxx manquants

J'ai également fait comme Alex l'a dit ci-dessus et cela n'a pas fonctionné pour moi non plus.

Pour ceux qui construisent libcxx à partir de zéro, pouvez-vous essayer de suivre les étapes mises à jour ici?

https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md#berkeley -db

Cela évite d'avoir à installer globalement.

@akstunt .. J'ai eu le même problème sur Ubuntu 12.04:

checking for Berkeley DB C++ headers... no
configure: error: libdb_cxx headers missing

Voici comment je l'ai résolu:

sudo apt-get install libdb4.8++-dev

Ensuite, exécutez à nouveau ./configure .

Ce même problème persiste. Debian 7.9 en février 2016.

Cela a résolu le problème, en quelque sorte:
apt-get installer libdb ++ - dev

La nouvelle erreur qui en a résulté était la suivante:
configure: erreur: Berkeley DB trouvé autre que 4.8, requis pour les portefeuilles portables (--with-incompatible-bdb à ignorer)

Ajout de la suggestion ci-dessus pour configurer la compilation autorisée, mais cet avertissement est apparu:
configure: AVERTISSEMENT: DB Berkeley trouvé autre que 4.8; les portefeuilles ouverts par cette version ne seront pas portables!

@MichaelBrenden mon ubuntu wily a les mêmes problèmes et utilise
./configure --with-incompatible-bdb résout les problèmes.
réf: http : //brianchan.us/home/2013/11/26/installing-bitcoin-in-ubuntu/

sur Fedora 24 (et probablement d'autres redhat comme)
résolu avec
dnf installer libdb4-cxx-devel

J'ai mal à la tête et je n'ai pas résolu ce problème

@chenluyong qu'avez-vous essayé et quel a été le résultat?

@ronaldpetty Le problème semble avoir été résolu, mais je ne l'ai pas enregistré

installer libdb-devel

Sur Ubuntu 16.04, voici comment je l'ai résolu.

sudo add-apt-repository ppa: bitcoin / bitcoin
sudo apt-get mise à jour
sudo apt-get installer libdb4.8-dev libdb4.8 ++ - dev

Sur centos 7.4 et installé libdb 、 libdb-devel 、 libdb-cxx 、 libdb-cxx-devel, mais la version est trop élevée. J'ai donc cherché la version inférieure sur https://www.rpmfind.net.
Utilisez rpm pour installer

rpm -ivh libdb4-4.8.30-13.el7.x86_64.rpm
rpm -ivh libdb4-devel-4.8.30-13.el7.x86_64.rpm
rpm -ivh libdb4-cxx-4.8.30-13.el7.x86_64.rpm 
rpm -ivh libdb4-cxx-devel-4.8.30-13.el7.x86_64.rpm

Puis ./configure passé.

@yuexiahandao
votre suggestion m'a aidé.thx.

voici mon env:

[root<strong i="8">@localhost</strong> bitcoin]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root<strong i="9">@localhost</strong> bitcoin]# uname -rm
3.10.0-327.el7.x86_64 x86_64
[root<strong i="10">@localhost</strong> bitcoin]# 

voici le problème:

[root<strong i="14">@localhost</strong> bitcoin]# ./configure 
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
...
...
checking for MSG_NOSIGNAL... yes
checking for Berkeley DB C++ headers... no
configure: error: libdb_cxx headers missing
[root<strong i="15">@localhost</strong> bitcoin]#

enfin, la résolution est:

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libdb4-4.8.30-13.el7.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libdb4-devel-4.8.30-13.el7.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libdb4-cxx-4.8.30-13.el7.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libdb4-cxx-devel-4.8.30-13.el7.x86_64.rpm

et

rpm -ivh libdb4-4.8.30-13.el7.x86_64.rpm
rpm -ivh libdb4-devel-4.8.30-13.el7.x86_64.rpm
rpm -ivh libdb4-cxx-4.8.30-13.el7.x86_64.rpm 
rpm -ivh libdb4-cxx-devel-4.8.30-13.el7.x86_64.rpm​

comme mentionné dans le fichier build-linux
sudo add-apt-repository ppa: bitcoin / bitcoin
sudo apt-get mise à jour
sudo apt-get installer libdb4.8-dev libdb4.8 ++ - dev

Peut-être que cela aidera quelqu'un:

J'ai eu le problème avec l'erreur de configuration: erreur: en-têtes libdb_cxx manquants

Mon problème était lié à l'étape
sudo update-alternatives --config x86_64-w64-mingw32-g ++ # Définit l'option par défaut du compilateur mingw32 g ++ sur posix.

Lors de la première installation, j'ai tout fait comme dans les instructions, mais pour une raison quelconque, je n'ai pas eu le choix de saisir un nombre pour sélectionner le mingw (posix) approprié. Peut-être que je ne l'ai tout simplement pas vu. J'ai vu ce commentaire "# Définissez l'option par défaut du compilateur mingw32 g ++ sur posix." mais je pense que cette commande fera tout ce qui est nécessaire.

Mais lors de la deuxième installation propre, j'ai prêté plus d'attention et choisi celui qui convient avec posix, puis la tige avec make HOST = x86_64-w64-mingw32 a pris beaucoup plus de temps et tout est devenu ok et je n'ai pas eu cette erreur.

Cela concerne les fenêtres de construction d'installation officielles avec WSL ubuntu 16

Essayez d'installer apt install libdb ++ - dev. Cela fonctionne pour moi sur ubuntu 16.04.

ce code corrige le problème pour moi:

    wget http://download.oracle.com/berkeley-db/db-4.8.30.zip
    unzip db-4.8.30.zip
    cd db-4.8.30
    cd build_unix/
    ../dist/configure --prefix=/usr/local --enable-cxx
    make
    make install

(source https://cryptoandcoffee.com/mining-gems/install-berkeley-4-8-db-libs-on-ubuntu-16-04/)

Lorsque j'essaye d'exécuter ./bitcoind, lancez ce message d'erreur: ./bitcoind: error while loading shared libraries: libdb_cxx-4.8.so: cannot open shared object file: No such file or directory .
Mais j'ai résolu ce problème de manière simple.
Il vous suffit de vérifier que libdb_cxx-4.8.so existe dans /usr/local/lib/ et /usr/local/lib64/ (quelqu'un a dit qu'il fallait vérifier /usr/local/src/db-xx/build_unix/.lib/ aussi), alors je n'ai pas trouvé libdb_cxx-4.8 .so dans lib64, donc je fais sudo ln -sf /usr/local/BerkeleyDB.4.8/lib/libdb_cxx-4.8.so /usr/lib64/libdb_cxx-4.8.so , ça marche !!!!
J'espère que cela peut vous aider.

Cette page vous a été utile?
0 / 5 - 0 notes