Debian Jessie 8.9 加密钱包编译错误“错误:'::SSLv3_server_method' 尚未声明”

Debian Jessie 8.9 加密钱包编译错误“错误:'::SSLv3_server_method' 尚未声明”

操作系统:Debian 8.9

钱包:mooncoin-0.10.5-tokenblock

已安装所有依赖项:libssl、libdb4.8、libboost、miniupnpc、qt4、protobuf、libqrencode

安装说明:/mooncoin-0.10.5-tokenblock/doc/build-unix.md

./autogen.sh
./configure
make

./autogen.sh(打印最后几行,不确定这是否是个问题)

Makefile.am:5: warning: user variable 'GZIP_ENV' defined here ...
/usr/share/automake-1.14/am/distdir.am: ... overrides Automake variable 'GZIP_ENV' defined here
Makefile.am:48: warning: user target 'distcleancheck' defined here ...
/usr/share/automake-1.14/am/distdir.am: ... overrides Automake target 'distcleancheck' defined here
src/Makefile.am:403: warning: user target '.mm.o' defined here 
.../usr/share/automake-1.14/am/depend2.am: ... overrides Automake target '.mm.o' defined here

./configure --enable-hardening (最后一行,可能有问题?)

Fixing libtool for -rpath problems.

制作

In file included from /usr/include/boost/asio/ssl/context.hpp:786:0,
             from /usr/include/boost/asio/ssl.hpp:19,
             from rpcprotocol.h:16,
             from rpcserver.h:10,
             from bitcoind.cpp:7:
/usr/include/boost/asio/ssl/impl/context.ipp: In constructor ‘boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)’:
/usr/include/boost/asio/ssl/impl/context.ipp:91:29: error: ‘::SSLv3_method’ has not been declared
 handle_ = ::SSL_CTX_new(::SSLv3_method());
                         ^
/usr/include/boost/asio/ssl/impl/context.ipp:94:29: error: ‘::SSLv3_client_method’ has not been declared
 handle_ = ::SSL_CTX_new(::SSLv3_client_method());
                         ^
/usr/include/boost/asio/ssl/impl/context.ipp:97:29: error: ‘::SSLv3_server_method’ has not been declared
 handle_ = ::SSL_CTX_new(::SSLv3_server_method());
                         ^
At global scope:
cc1plus: warning: unrecognized command line option "-Wno-self-assign"
Makefile:5503: recipe for target 'Mooncoind-bitcoind.o' failed
make[2]: *** [Mooncoind-bitcoind.o] Error 1
make[2]: Leaving directory '/home/darin/Downloads/mooncoin-0.10.5-tokenblock/src'
Makefile:6269: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/darin/Downloads/mooncoin-0.10.5-tokenblock/src'
Makefile:554: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

我在使用 earthcoin 和 leafcoin 钱包时也遇到了同样的问题。在花了很多时间搜索并尝试解决这个问题后,我束手无策了。

答案1

问题在于 Debian 8 中删除了 SSLv3 支持,而 Debian 8 1.55.0.2 中可用的 Boost 库需要 SSLv3,而 SSLv3 不能被忽略。

我通过注释这些行修改了下面的文件,因此它不再检查 SSLv3:

/usr/include/boost/asio/ssl/impl/context.ipp

通常情况下,我不会修改源库,但在这种情况下,由于 Jessie 中不存在 SSLv3,所以这是我做出的选择。

libboost 1.55.0.2 中的注释行

相关内容