本文列出个人在编译比特币程序bitcoind以及启动运行中遇到的问题。
Makefile.am:10: error: Libtool library used but 'LIBTOOL' is undefined
Makefile.am:10: The usual way to define 'LIBTOOL' is to add 'LT_INIT'
Makefile.am:10: to 'configure.ac' and run 'aclocal' and 'autoconf' again.
Makefile.am:10: If 'LT_INIT' is in 'configure.ac', make sure
Makefile.am:10: its definition is in aclocal's search path.
解决方法:yum install libtool -y
解决方法:问题原因是机器没有安装autotool工具系列,需要安装automake和autoconf
yum install automake -y
yum install autoconf
执行bitcoind目录下的configure过程中出现openssl库没有找到的情况,执行命令:openssl version -a 查看系统如果安装(大多数系统都会安装),则需要安装openssl-devel,执行如下命令
yum install openssl-devel
原因是系统中没有安装libevent库,解决办法为手动安装。打开http://libevent.org/选择libevent的版本,本人选择libevent-2.0.22-stable.tar.gz, 下载代码到系统中。执行如下命令 :
./configure --prefix=/user/local/
make
make install
安装成功后,运行bitcoin目录下的configure如果仍然出现上述问题是因为没有安装libeven-devel,执行命令
yum install libevent-devel
问题的原因是没有安装BekerlyDB,解决方法如下:
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
注意如果运行过程中出现找不到libdb.xxx.so的时候原因是一样的,都是由于没有安装BerkelyDB的原因。
configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)
如果遇到上述错误,解决的方法一样,需要安装BerkeleyDB 同时在configure后面添加
--with-incompatible-bdb
核心问题,也是比较常见的问题,原因是系统中没有安装boot库,解决方法如下:
下载 boost (http://www.boost.org/users/history/version_1_66_0.html)
cd boost_1_66_0/
./bootstrap.sh --prefix=/usr/local/
./bjam install
注意bootstrap中的prefix参数很重要,这个直接决定后面运行的时候如果出现libboost.xxx.so找不到的解决方法
问题是AS的版本过低导致,可以通过更新AS的版本来解决该问题
wget https://ftp.gnu.org/gnu/binutils/binutils-2.31.tar.gz
tar zxvf binutils-2.31.tar.gz
cd binutils-2.31
./configure
make
make install
机器上没有安装对应的pythond-devel,解决方法如下
yum install python-devel.x86_64
以上的问题是编译过程遇到的问题,下面主要是运行过程中遇到的问题
error while loading shared libraries: libdb_cxx-4.8.so: cannot open shared object file: No such file or directory
error while loading shared libraries: libboost.xxxx.so: cannot open shared object file: No such file or directory
主要原因是动态链库找不到,可以通过修改libc.conf来实现
vim /etc/ld.so.conf.d/libc.conf
添加刚才安装的boost等库的路径例如
/usr/local/lib
/usr/lib
保存libc.conf
执行ldconfig