这些文件位于/ usr / pkg / include / db4中
samsa%ls / usr / pkg / include / db4
db.h db_185.h db_cxx.h
如果/ 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 ++,所以我做了以下操作来解决此问题
亚历克斯,谢谢!
我有同样的问题:我已经从源代码编译了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的资源
但是执行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
,它可以正常工作!!!
希望对您有所帮助。
最有用的评论
sudo apt-get install libdb ++-dev解决了我的问题。