Bitcoin: 配置:错误:缺少libdb_cxx标头(netbsd)

创建于 2013-09-15  ·  35评论  ·  资料来源: bitcoin/bitcoin

这些文件位于/ usr / pkg / include / db4中

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

Bug Build system

最有用的评论

sudo apt-get install libdb ++-dev解​​决了我的问题。

所有35条评论

如果/ usr / pkg / include在您的包含路径中,则应该已经搜索了此路径。您可以发布config.log吗?

同样的问题在这里:

在虚拟机上运行的CentOS。

找到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
_

config.log的内容: http :

还是最新的大师有问题? AFAIK新的自动工具系统发生了变化,因此也许您可以再试一次。

Ubuntu 13.04上的相同问题。

sudo apt-get install libdb ++-dev解​​决了我的问题。

显然,如果未安装libdb,则会出现该错误。如果仔细阅读,原始海报会安装该库,但未检测到该库,因此它不是同一问题。

由于CentOs官方仓库中没有libdb ++,所以我做了以下操作来解决此问题

  1. 下载BerkeleyDb 4.8的资源
  2. / build_unix /
  3. ../dist/configure --prefix = / usr / local --enable-cxx
  4. 使
  5. (作为root)进行安装

亚历克斯,谢谢!

我有同样的问题:我已经从源代码编译了BDB,但是不想安装它。 我可以以某种方式将配置脚本指向db_cxx.h吗?

编辑:我已经将它添加到./src/m4/bitcoin_find_bdb48.m4

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

作品。

更好的选择是添加--with-db4选项进行配置

是,或#3550中建议的BDB_CFLAGS / BDB_LIBS

可以通过以下操作解决此问题:
cd ~/db-4.8.30.NC/build_unix make sudo make install
检查/ usr / local中是否有BerkeleyDB.4.8文件夹
ls /usr/local
然后创建一个符号链接:
ln -s /usr/local/BerkeleyDB.4.8 /usr/include/db4.8
然后执行:
ln -s /usr/local/db4.8/include/* /usr/include ln -s /usr/local/db4.8/lib/* /usr/lib

与symlink相比,它有什么好处:

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

或构建一个静态库而不是共享库,因此您根本不必在系统搜索路径上安装该库。

[centos 6.5,当前的比特币版本]我似乎已经成功编译了比特币,但是​​,当我尝试运行它时,得到以下信息:

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

按照这里的指示进行操作后,我下载并编译了4.8源代码,但是似乎无法在/ usr / local中生成任何BerkeleyDB.4.8文件夹。
但是,我在db-4.8.30.NC/build_unix/.libs中找到了libdb_cxx-4.8.so

如果仅在正确的位置复制或引用此.so文件,是否可以解决问题?
使用'locate libdb_cxx',我在/ usr / lib64中获得了'libdb_cxx.so'和'libdb_cxx-4.7.so'的条目,仅此而已。

我应该将bitcoin / src / m4 / bitcoin_find_bdb48.m4, line:7指向
'bdbdirlist = / root / berkeley-db / db-4.8.30.NC / build_unix / .libs'? (对我来说,上面提到的db-4.8.30.NC/build_unix/build/include目录不存在)。

复制libdb_cxx-4.8.so / usr / lib64似乎无法解决问题。

抱歉,我事先表示歉意。 我仍然要跟上这里涉及的几层抽象。 提前致谢。 全文在这里: https

dlio,您是否尝试过从“ db-4.8.30.NC/build_unix/”进行“安装”? 如果我没记错的话,应该将许多文件放在适当的位置。

感谢您的快速回复coincapsig。

我按照上面的亚历山大方法尝试了以下方法:
`1。 下载BerkeleyDb 4.8的资源

  1. 转到/ build_unix /
  2. ../dist/configure --prefix = / usr / local --enable-cxx
  3. 使
  4. (以root身份)进行安装`

但是执行locate libdb_cxx仍然只显示ibdb_cxx.so和libdb_cxx-4.7.so,位于/ usr / lib64 /

我感到您的痛苦,在这个版本中我遇到了完全相同的问题:
Linux版本2.6.32-431.11.2.el6.x86_64([email protected])(gcc版本4.4.7 20120313(Red Hat 4.4.7-4)(GCC))#1 SMP Tue 2014年3月25日19:59:55 UTC

这是./configure失败之前的最后两行的输出。

正在检查Berkeley DB C ++标头...否
配置:错误:libdb_cxx标头丢失

我也按照亚历克斯所说的做了,这对我也不起作用。

对于那些从头开始构建libcxx的人,您可以尝试按照此处的更新步骤进行操作吗?

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

这避免了必须全局安装。

@akstunt ..我在Ubuntu 12.04上遇到了同样的问题:

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

这是我的解决方法:

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

然后只需再次运行./configure

这个完全相同的问题仍然存在。 2016年2月的Debian 7.9。

这样就解决了问题:
apt-get安装libdb ++-dev

随之而来的新错误是:
配置:错误:发现便携式钱包需要4.8以外的Berkeley DB(-with-incompatible-bdb可以忽略)

添加以上建议以配置允许的编译,但是出现此警告:
配置:警告:找到4.8以外的Berkeley DB; 此版本打开的钱包将无法携带!

@ubuntu的@MichaelBrenden遇到了同样的问题,并使用
./configure --with-incompatible-bdb解决了这些问题。
编号:http ://brianchan.us/home/2013/11/26/installing-bitcoin-in-ubuntu/

在Fedora 24上(可能还有其他的Redhat)
解决了
dnf安装libdb4-cxx-devel

我头疼,我还没解决

@chenluyong您尝试了什么,结果如何?

@ronaldpetty该问题似乎已经解决,但我没有记录

安装libdb-devel

在Ubuntu 16.04上,这是我解决的方法。

sudo add-apt-repository ppa:比特币/比特币
sudo apt-get更新
sudo apt-get安装libdb4.8-dev libdb4.8 ++-dev

在centos 7.4上并安装了libdb,libdb-devel,libdb-cxx,libdb-cxx-devel,但是版本太高。 因此,我在https://www.rpmfind.net上搜索了较低的版本
使用rpm安装

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

然后./configure通过。

y
您的建议对我有帮助。

这是我的环境:

[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]# 

这是问题所在:

[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]#

最后,解决方法是:

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

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​

如在build-linux文件中提到的,您需要安装特定的berkleydb
sudo add-apt-repository ppa:比特币/比特币
sudo apt-get更新
sudo apt-get安装libdb4.8-dev libdb4.8 ++-dev

可能会帮助某人:

我有错误配置问题:错误:缺少libdb_cxx标头

我的问题与步骤有关
sudo update-alternatives --config x86_64-w64-mingw32-g ++#将默认的mingw32 g ++编译器选项设置为posix。

在首次安装期间,我按照说明执行了所有操作,但是由于某些原因,我没有选择输入数字来选择适当的mingw(posix)的选择。 可能是我没看到。 我已经看到此注释“#将默认的mingw32 g ++编译器选项设置为posix。” 但是以为这个命令可能会做所有需要的事情。

但是在第二次全新安装过程中,我更加关注并选择了posix并选择合适的主机,然后使make HOST = x86_64-w64-mingw32花费了很多时间,而且一切都变好了,而且我没有这个错误。

关于使用WSL ubuntu 16的官方安装构建窗口

尝试安装apt install libdb ++-dev。 它在ubuntu 16.04上对我有用。

这段代码为我修复了:

    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

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

当我尝试运行./bitcoind时,抛出此错误消息: ./bitcoind: error while loading shared libraries: libdb_cxx-4.8.so: cannot open shared object file: No such file or directory
但是我以简单的方式解决了这个问题。
您只需要检查libdb_cxx-4.8.so是否存在于/usr/local/lib//usr/local/lib64/ (有人说也需要检查/usr/local/src/db-xx/build_unix/.lib/ ),那么我没有找到libdb_cxx-4.8 .so在lib64中,所以我可以执行sudo ln -sf /usr/local/BerkeleyDB.4.8/lib/libdb_cxx-4.8.so /usr/lib64/libdb_cxx-4.8.so ,它可以正常工作!!!
希望对您有所帮助。

此页面是否有帮助?
0 / 5 - 0 等级