Bitcoin: configure: error: libdb_cxx headers missing (netbsd)

Created on 15 Sep 2013  ·  35Comments  ·  Source: bitcoin/bitcoin

these files are located in /usr/pkg/include/db4

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

Bug Build system

Most helpful comment

sudo apt-get install libdb++-dev solves my problem.

All 35 comments

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

  1. Download sources of BerkeleyDb 4.8
  2. Go to /build_unix/
  3. ../dist/configure --prefix=/usr/local --enable-cxx
  4. make
  5. (as root) make install

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

  1. Go to /build_unix/
  2. ../dist/configure --prefix=/usr/local --enable-cxx
  3. make
  4. (as root) make install`

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.

Was this page helpful?
0 / 5 - 0 ratings