these files are located in /usr/pkg/include/db4
samsa% ls /usr/pkg/include/db4
db.h db_185.h db_cxx.h
This path should already be searched if /usr/pkg/include is in your include path... Can you post a config.log?
Same issue here:
CentOS running on a virtual machine.
locate 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
_
Contents of config.log: http://pastebin.com/N1jW9GuF
Still an issue with latest master? AFAIK there were changes with the new autotools system so perhaps you can try again.
Same problem on ubuntu 13.04.
sudo apt-get install libdb++-dev solves my problem.
Obviously you get that error if libdb is not installed... if you read carefully, the original poster has the library installed but it is not detected, so it is not the same problem.
Since there is no libdb++ in official CentOs repo, I've done the following to fix this problem
Alex, thank you!
I have the same issue: I've compiled BDB from source but dont want to install it. Can I point the configure script to my db_cxx.h somehow?
Edit: I've added it to ./src/m4/bitcoin_find_bdb48.m4
:
bdbdirlist=/path/to/compiled/db-4.8.30.NC/build_unix/build/include
Works.
a better option would be to add a --with-db4 option to configure
Yes, or BDB_CFLAGS/BDB_LIBS as proposed in #3550
This can be fixed by doing the following:
cd ~/db-4.8.30.NC/build_unix
make
sudo make install
Check that there is a BerkeleyDB.4.8 folder in /usr/local
ls /usr/local
then create a symbolic link:
ln -s /usr/local/BerkeleyDB.4.8 /usr/include/db4.8
and then do:
ln -s /usr/local/db4.8/include/* /usr/include
ln -s /usr/local/db4.8/lib/* /usr/lib
Any benefit to the symlink vs something like:
echo "/usr/local/lib" > /etc/ld.so.conf.d/db-4.8.30.conf
ldconfig
Or build a static library and not a shared one, so you don't have to install the library on your system search path at all.
[centos 6.5, current bitcoin version] I seem to have successfully compiled bitcoind, however, when I try to run it, I get the following:
./bitcoind: error while loading shared libraries: libdb_cxx-4.8.so: cannot open shared object file: No such file or directory
Having followed the directions here, I downloaded and compiled 4.8 source, but I can't seem to get any BerkeleyDB.4.8 folders to be generated in /usr/local.
I have, however, located libdb_cxx-4.8.so in db-4.8.30.NC/build_unix/.libs
If I simply copy or reference this .so file in the correct places, should that resolve the issue?
Using 'locate libdb_cxx' I get entries for 'libdb_cxx.so' and 'libdb_cxx-4.7.so' in /usr/lib64, but that's all.
Should I point bitcoin/src/m4/bitcoin_find_bdb48.m4, line:7, to
'bdbdirlist=/root/berkeley-db/db-4.8.30.NC/build_unix/.libs' ? (the db-4.8.30.NC/build_unix/build/include directory mentioned above does not exist for me).
Copying libdb_cxx-4.8.so do /usr/lib64 does not seem to resolve the issue.
My apologies in advance for my limited understanding. I'm still getting up to speed with several layers of abstraction involved here. Thanks in advance. Full post here: https://bitcointalk.org/index.php?topic=588032
dlio, have you tried to 'make install' from 'db-4.8.30.NC/build_unix/' ? It should put many of the files in their proper places if I remember correctly.
Thanks for the quick reply coincapsig.
I have tried this following alexander's method as per the above:
`1. Download sources of BerkeleyDb 4.8
but doing a locate libdb_cxx
still only shows the ibdb_cxx.so and libdb_cxx-4.7.so as being in /usr/lib64/
I feel your pain dilo, I have the exact same issue on this build:
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 Mar 25 19:59:55 UTC 2014
Here is the output from the last 2 lines before ./configure fails.
checking for Berkeley DB C++ headers... no
configure: error: libdb_cxx headers missing
I have also done as Alex has said above and it did not work for me either.
For those building libcxx from scratch, can you try following the updated steps here?
https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md#berkeley-db
This avoids having to install globally.
@akstunt .. I had the same issue on Ubuntu 12.04:
checking for Berkeley DB C++ headers... no
configure: error: libdb_cxx headers missing
Here's how I fixed it:
sudo apt-get install libdb4.8++-dev
Then just run the ./configure
again.
This exact same problem lives on. Debian 7.9 in Feb 2016.
This solved the problem, sort of:
apt-get install libdb++-dev
The consequent new error was this:
configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore)
Adding the above suggestion to configure allowed compilation, but this warning appeared:
configure: WARNING: Found Berkeley DB other than 4.8; wallets opened by this build will not be portable!
@MichaelBrenden my ubuntu wily has the same problems,and use
./configure --with-incompatible-bdb solve the problems .
ref:http://brianchan.us/home/2013/11/26/installing-bitcoin-in-ubuntu/
on Fedora 24 (and probably other redhat like)
solved it with
dnf install libdb4-cxx-devel
I have a headache and I haven't solved this problem
@chenluyong what did you try and what was the outcome?
@ronaldpetty The problem seems to have been solved, but I haven't recorded it
install libdb-devel
On Ubuntu 16.04, here is how I solved it.
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
On centos 7.4 and installed libdb、libdb-devel、libdb-cxx、libdb-cxx-devel, but the version is too high. So I searched lower version at https://www.rpmfind.net.
Use rpm to install
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
Then ./configure
passed.
@yuexiahandao
your suggestion helped me.thx.
here is my env:
[root@localhost bitcoin]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@localhost bitcoin]# uname -rm
3.10.0-327.el7.x86_64 x86_64
[root@localhost bitcoin]#
here is the problem:
[root@localhost 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@localhost bitcoin]#
last,the resolution is:
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
and
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
as mentionned in build-linux file you need to install specific berkleydb
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
May be it will help someone:
I had the issue with error configure: error: libdb_cxx headers missing
My problem was related to the step
sudo update-alternatives --config x86_64-w64-mingw32-g++ # Set the default mingw32 g++ compiler option to posix.
During first installation, I did everything like in instructions, but for some reason i didn't have choice to input a number to select appropriate mingw (posix). May be I just didn't see it. I've seen this comment "# Set the default mingw32 g++ compiler option to posix." but thought that may be this command will do everything needed.
But during second clean installation I payed more attention and selected appropriate one with posix and then stem with make HOST=x86_64-w64-mingw32 took much much more time and everything become ok and I didn't have this error.
It's regarding official installation build-windows with WSL ubuntu 16
Try to install apt install libdb++-dev. It works for me on ubuntu 16.04.
this code fix it for me :
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/ )
When I try to run ./bitcoind, throw this error message: ./bitcoind: error while loading shared libraries: libdb_cxx-4.8.so: cannot open shared object file: No such file or directory
.
But I fixed this issue on easy way.
You only need to check libdb_cxx-4.8.so is exist in /usr/local/lib/
and /usr/local/lib64/
(someone said need to check /usr/local/src/db-xx/build_unix/.lib/
too), then I didn't found libdb_cxx-4.8.so in lib64, so I do sudo ln -sf /usr/local/BerkeleyDB.4.8/lib/libdb_cxx-4.8.so /usr/lib64/libdb_cxx-4.8.so
, it works!!!!
I hope it can help you.
Most helpful comment
sudo apt-get install libdb++-dev solves my problem.