Bitcoin 编译0.19版本时“undefined reference to `OPENSSL_init_crypto‘”

我在0.19版本的比特币上需要修改其源代码,所以不得不通过修改源代码的方式进行安装部署,结果现在最新版本已经到了0.20版本以后了,0.20以后的版本编译的时候需要可以用openssl1.1.1g就可以,但是0.19版本的用openssl1.1.1g版本就不行,我找了好久问题都没找到,最后终于找到问题了,我把openssl的版本回退到openssl1.0.2a,结果进行编译就通过了。
步骤如下:

  1. 首先下载openssl1.0.2a, openssl历史版本可以从这里下载

wget https://www.openssl.org/source/openssl-1.0.2a.tar.gz

  1. 然后解压缩

tar -zxvf openssl1.0.2a

  1. 然后编译

./config --prefix=/usr/local --openssldir=/usr/local/ssl
make && make install
./config shared --prefix=/usr/local --openssldir=/usr/local/ssl
make clean
make && make install

prefix 是安装目录,openssldir是配置文件目录,另外建议安装两次,shard作用是生成动态链接库

然后按照正常流程编译比特币源码即可。

./autogen.sh
./configure --disable-wallet
sudo make
sudo make install

ok,就这样就可以通过编译了。玛德这个问题困扰了我快一周,算是解决了。

你可能感兴趣的:(区块链,比特币编译)