Bitcoin项目源码是用C++写的,我对C++以及它的编译工具又比较熟悉,这次我尝试了在openEuler RISC-V 24.09上面部署Bitcoin。网上编译Bitcoin源码的很多都是以前旧版的,旧版编译是用automake之类的工具,但是在最新版只需要用cmake就行,两者的部署方式不相同,我分别记录一下。
最新版:
把项目拉下来之后,因为有比较多的依赖没有下载,于是只能边跑边看看缺什么,以下是缺的几样东西(除去最基本的C++工具)
dnf intall sqlite-devel
dnf install boost-devel
dnf install pkgconf-devel
只需要 mkdir build && cd build && cmake .. && make -j$(nproc)即可部署,不过编译完还有瑕疵,得测试以下。
跟Boost相关的警告,得测试各种Bitcoin的命令行服务才能知道究竟有什么。
旧版:
旧版我用的是 0.10.3,这是比较早期的版本,即便是在现在的Ubuntu(x86)上面编译,也会出现问题(包版本比较新)。
以下是缺的包(除去C++及其编译工具链)
dnf install libdb-devel
但是这里安装完再跑一遍会出现如下的错误
因此在 configure 阶段,我选择加了 --disable-wallet 这个选项,禁用掉钱包的功能。
继续往下走,就比较棘手了,推断跟Boost有关,我在Ubuntu上面也遇到了,不过下载了libboost-system-dev就解决了
准确来说,应该要下载libboost-all-dev,因为不止boost_system会有这个问题,主要一点就是libboost-all-dev包含了libboost-system-dev,但是OE上面boost-devel好像并不包含boost-system-devel?因为只有 boost-system 而没有 boost-system-devel。
暂时就先到这里,如果解决了我再写一篇文章,综上,旧版的就只需要 ./autogen.sh && ./configure --disable-wallet 就能到这里了,至于怎么解决,我还在探讨。