ces fichiers se trouvent dans / usr / pkg / include / db4
samsa% ls / usr / pkg / include / db4
db.h db_185.h db_cxx.h
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
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
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.
Commentaire le plus utile
sudo apt-get install libdb ++ - dev résout mon problème.