Bitcoin-Core

在 Ubuntu-18.0.4 上配置比特幣核心版本的問題

  • January 16, 2022

我正在嘗試配置比特幣核心建構,當我使用make時,我收到了以下問題。

~/Desktop/bitcoin$ make
Making all in src
make[1]: Entering directory '/home/fu/Desktop/bitcoin/src'
make  all-recursive
make[2]: Entering directory '/home/fu/Desktop/bitcoin/src'
Making all in .
make[3]: Entering directory '/home/fu/Desktop/bitcoin/src'
 CXX      addrman.o
In file included from chainparams.h:9:0,
                from protocol.h:13,
                from addrman.h:9,
                from addrman.cpp:5:
bignum.h:56:24: error: invalid use of incomplete type ‘BIGNUM {aka struct bignum_st}’
class CBigNum : public BIGNUM
                       ^~~~~~
In file included from /usr/include/openssl/crypto.h:31:0,
                from allocators.h:15,
                from serialize.h:9,
                from netbase.h:13,
                from addrman.h:8,
                from addrman.cpp:5:
/usr/include/openssl/ossl_typ.h:80:16: note: forward declaration of ‘BIGNUM {aka struct bignum_st}’
typedef struct bignum_st BIGNUM;
               ^~~~~~~~~
In file included from chainparams.h:9:0,
                from protocol.h:13,
                from addrman.h:9,
                from addrman.cpp:5:
bignum.h: In constructor ‘CBigNum::CBigNum()’:
bignum.h:61:9: error: ‘BN_init’ was not declared in this scope
        BN_init(this);
        ^~~~~~~
bignum.h:61:9: note: suggested alternative: ‘BN_print’
        BN_init(this);
        ^~~~~~~
        BN_print
bignum.h: In copy constructor ‘CBigNum::CBigNum(const CBigNum&)’:
bignum.h:66:9: error: ‘BN_init’ was not declared in this scope
        BN_init(this);
        ^~~~~~~
bignum.h:66:9: note: suggested alternative: ‘BN_print’
        BN_init(this);
        ^~~~~~~
        BN_print
bignum.h:67:30: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘BIGNUM* BN_copy(BIGNUM*, const BIGNUM*)’
        if (!BN_copy(this, &b))
                             ^
bignum.h:69:31: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘void BN_clear_free(BIGNUM*)’
            BN_clear_free(this);
                              ^
bignum.h: In member function ‘CBigNum& CBigNum::operator=(const CBigNum&)’:
bignum.h:76:30: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘BIGNUM* BN_copy(BIGNUM*, const BIGNUM*)’
        if (!BN_copy(this, &b))
                             ^
bignum.h: In destructor ‘CBigNum::~CBigNum()’:
bignum.h:83:27: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘void BN_clear_free(BIGNUM*)’
        BN_clear_free(this);
                          ^
bignum.h: In constructor ‘CBigNum::CBigNum(signed char)’:
bignum.h:87:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(signed char n)        { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
bignum.h:87:37: note: suggested alternative: ‘BN_print’
    CBigNum(signed char n)        { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(short int)’:
bignum.h:88:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(short n)              { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
bignum.h:88:37: note: suggested alternative: ‘BN_print’
    CBigNum(short n)              { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(int)’:
bignum.h:89:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(int n)                { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
bignum.h:89:37: note: suggested alternative: ‘BN_print’
    CBigNum(int n)                { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(long int)’:
bignum.h:90:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(long n)               { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
bignum.h:90:37: note: suggested alternative: ‘BN_print’
    CBigNum(long n)               { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(long long int)’:
bignum.h:91:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(long long n)          { BN_init(this); setint64(n); }
                                    ^~~~~~~
bignum.h:91:37: note: suggested alternative: ‘BN_print’
    CBigNum(long long n)          { BN_init(this); setint64(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(unsigned char)’:
bignum.h:92:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(unsigned char n)      { BN_init(this); setulong(n); }
                                    ^~~~~~~
bignum.h:92:37: note: suggested alternative: ‘BN_print’
    CBigNum(unsigned char n)      { BN_init(this); setulong(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(short unsigned int)’:
bignum.h:93:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(unsigned short n)     { BN_init(this); setulong(n); }
                                    ^~~~~~~
bignum.h:93:37: note: suggested alternative: ‘BN_print’
    CBigNum(unsigned short n)     { BN_init(this); setulong(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(unsigned int)’:
bignum.h:94:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(unsigned int n)       { BN_init(this); setulong(n); }
                                    ^~~~~~~
bignum.h:94:37: note: suggested alternative: ‘BN_print’
    CBigNum(unsigned int n)       { BN_init(this); setulong(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(long unsigned int)’:
bignum.h:95:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(unsigned long n)      { BN_init(this); setulong(n); }
                                    ^~~~~~~
bignum.h:95:37: note: suggested alternative: ‘BN_print’
    CBigNum(unsigned long n)      { BN_init(this); setulong(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(long long unsigned int)’:
bignum.h:96:37: error: ‘BN_init’ was not declared in this scope
    CBigNum(unsigned long long n) { BN_init(this); setuint64(n); }
                                    ^~~~~~~
bignum.h:96:37: note: suggested alternative: ‘BN_print’
    CBigNum(unsigned long long n) { BN_init(this); setuint64(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(uint256)’:
bignum.h:97:37: error: ‘BN_init’ was not declared in this scope
    explicit CBigNum(uint256 n)   { BN_init(this); setuint256(n); }
                                    ^~~~~~~
bignum.h:97:37: note: suggested alternative: ‘BN_print’
    explicit CBigNum(uint256 n)   { BN_init(this); setuint256(n); }
                                    ^~~~~~~
                                    BN_print
bignum.h: In constructor ‘CBigNum::CBigNum(const std::vector&)’:
bignum.h:101:9: error: ‘BN_init’ was not declared in this scope
        BN_init(this);
        ^~~~~~~
bignum.h:101:9: note: suggested alternative: ‘BN_print’
        BN_init(this);
        ^~~~~~~
        BN_print
bignum.h: In member function ‘void CBigNum::setulong(long unsigned int)’:
bignum.h:107:33: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_set_word(BIGNUM*, long unsigned int)’
        if (!BN_set_word(this, n))
                                ^
bignum.h: In member function ‘long unsigned int CBigNum::getulong() const’:
bignum.h:113:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘long unsigned int BN_get_word(const BIGNUM*)’
        return BN_get_word(this);
                               ^
bignum.h: In member function ‘unsigned int CBigNum::getuint() const’:
bignum.h:118:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘long unsigned int BN_get_word(const BIGNUM*)’
        return BN_get_word(this);
                               ^
bignum.h: In member function ‘int CBigNum::getint() const’:
bignum.h:123:43: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘long unsigned int BN_get_word(const BIGNUM*)’
        unsigned long n = BN_get_word(this);
                                          ^
bignum.h:124:33: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_negative(const BIGNUM*)’
        if (!BN_is_negative(this))
                                ^
In file included from chainparams.h:9:0,
                from protocol.h:13,
                from addrman.h:9,
                from addrman.cpp:5:
bignum.h: In member function ‘void CBigNum::setint64(int64_t)’:
bignum.h:172:37: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
        BN_mpi2bn(pch, p - pch, this);
                                    ^
bignum.h: In member function ‘void CBigNum::setuint64(uint64_t)’:
bignum.h:199:37: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
        BN_mpi2bn(pch, p - pch, this);
                                    ^
bignum.h: In member function ‘void CBigNum::setuint256(uint256)’:
bignum.h:227:37: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
        BN_mpi2bn(pch, p - pch, this);
                                    ^
bignum.h: In member function ‘uint256 CBigNum::getuint256() const’:
bignum.h:232:50: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
        unsigned int nSize = BN_bn2mpi(this, NULL);
                                                 ^
bignum.h:236:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
        BN_bn2mpi(this, &vch[0]);
                               ^
bignum.h: In member function ‘void CBigNum::setvch(const std::vector&)’:
bignum.h:257:46: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
        BN_mpi2bn(&vch2[0], vch2.size(), this);
                                             ^
bignum.h: In member function ‘std::vector CBigNum::getvch() const’:
bignum.h:262:50: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
        unsigned int nSize = BN_bn2mpi(this, NULL);
                                                 ^
bignum.h:266:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
        BN_bn2mpi(this, &vch[0]);
                               ^
bignum.h: In member function ‘CBigNum& CBigNum::SetCompact(unsigned int)’:
bignum.h:302:36: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_set_word(BIGNUM*, long unsigned int)’
            BN_set_word(this, nWord);
                                   ^
bignum.h:306:36: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_set_word(BIGNUM*, long unsigned int)’
            BN_set_word(this, nWord);
                                   ^
bignum.h:307:46: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_lshift(BIGNUM*, const BIGNUM*, int)’
            BN_lshift(this, this, 8*(nSize-3));
                                             ^
bignum.h:309:40: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘void BN_set_negative(BIGNUM*, int)’
        BN_set_negative(this, fNegative);
                                       ^
In file included from bignum.h:17:0,
                from chainparams.h:9,
                from protocol.h:13,
                from addrman.h:9,
                from addrman.cpp:5:
bignum.h: In member function ‘unsigned int CBigNum::GetCompact() const’:
bignum.h:315:30: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_num_bits(const BIGNUM*)’
        unsigned int nSize = BN_num_bytes(this);
                             ^
In file included from chainparams.h:9:0,
                from protocol.h:13,
                from addrman.h:9,
                from addrman.cpp:5:
bignum.h:318:40: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘long unsigned int BN_get_word(const BIGNUM*)’
            nCompact = BN_get_word(this)  0)
                               ^
bignum.h:381:54: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
            if (!BN_div(&dv, &rem, &bn, &bnBase, pctx))
                                                     ^
bignum.h:387:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_negative(const BIGNUM*)’
        if (BN_is_negative(this))
                               ^
bignum.h: In member function ‘bool CBigNum::operator!() const’:
bignum.h:420:31: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_zero(const BIGNUM*)’
        return BN_is_zero(this);
                              ^
bignum.h: In member function ‘CBigNum& CBigNum::operator+=(const CBigNum&)’:
bignum.h:425:35: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)’
        if (!BN_add(this, this, &b))
                                  ^
bignum.h: In member function ‘CBigNum& CBigNum::operator*=(const CBigNum&)’:
bignum.h:439:41: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
        if (!BN_mul(this, this, &b, pctx))
                                        ^
bignum.h: In member function ‘CBigNum& CBigNum::operator>=(unsigned int)’:
bignum.h:469:28: error: cannot convert ‘CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
        if (BN_cmp(&a, this) > 0)
                           ^
bignum.h:475:41: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_rshift(BIGNUM*, const BIGNUM*, int)’
        if (!BN_rshift(this, this, shift))
                                        ^
bignum.h: In member function ‘CBigNum& CBigNum::operator++()’:
bignum.h:484:47: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)’
        if (!BN_add(this, this, BN_value_one()))
                                              ^
bignum.h: In member function ‘CBigNum& CBigNum::operator--()’:
bignum.h:501:45: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_sub(BIGNUM*, const BIGNUM*, const BIGNUM*)’
        if (!BN_sub(&r, this, BN_value_one()))
                                            ^
bignum.h: In function ‘const CBigNum operator+(const CBigNum&, const CBigNum&)’:
bignum.h:526:27: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)’
    if (!BN_add(&r, &a, &b))
                          ^
bignum.h: In function ‘const CBigNum operator-(const CBigNum&, const CBigNum&)’:
bignum.h:534:27: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_sub(BIGNUM*, const BIGNUM*, const BIGNUM*)’
    if (!BN_sub(&r, &a, &b))
                          ^
bignum.h: In function ‘const CBigNum operator-(const CBigNum&)’:
bignum.h:542:43: error: cannot convert ‘CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_negative(const BIGNUM*)’
    BN_set_negative(&r, !BN_is_negative(&r));
                                          ^
bignum.h: In function ‘const CBigNum operator*(const CBigNum&, const CBigNum&)’:
bignum.h:550:33: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
    if (!BN_mul(&r, &a, &b, pctx))
                                ^
bignum.h: In function ‘const CBigNum operator/(const CBigNum&, const CBigNum&)’:
bignum.h:559:39: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
    if (!BN_div(&r, NULL, &a, &b, pctx))
                                      ^
In file included from bignum.h:17:0,
                from chainparams.h:9,
                from protocol.h:13,
                from addrman.h:9,
                from addrman.cpp:5:
bignum.h: In function ‘const CBigNum operator%(const CBigNum&, const CBigNum&)’:
bignum.h:568:10: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘2’ to ‘int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
    if (!BN_mod(&r, &a, &b, pctx))
         ^
In file included from chainparams.h:9:0,
                from protocol.h:13,
                from addrman.h:9,
                from addrman.cpp:5:
bignum.h: In function ‘const CBigNum operator=(const CBigNum&, const CBigNum&)’:
bignum.h:591:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
um& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); }
                                                ^
bignum.h: In function ‘bool operator(const CBigNum&, const CBigNum&)’:
bignum.h:593:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
um& a, const CBigNum& b)  { return (BN_cmp(&a, &b) > 0); }
                                                 ^
In file included from util.h:15:0,
                from addrman.h:11,
                from addrman.cpp:5:
tinyformat.h: In static member function ‘static const char* tinyformat::detail::FormatIterator::streamStateFromFormat(std::ostream&, unsigned int&, const char*, int, int)’:
tinyformat.h:784:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
            out.setf(std::ios::uppercase);
            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:785:9: note: here
        case 'x': case 'p':
        ^~~~
tinyformat.h:790:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
            out.setf(std::ios::uppercase);
            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:791:9: note: here
        case 'e':
        ^~~~
tinyformat.h:796:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
            out.setf(std::ios::uppercase);
            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:797:9: note: here
        case 'f':
        ^~~~
tinyformat.h:801:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
            out.setf(std::ios::uppercase);
            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:802:9: note: here
        case 'g':
        ^~~~
Makefile:838: recipe for target 'addrman.o' failed
make[3]: *** [addrman.o] Error 1
make[3]: Leaving directory '/home/fu/Desktop/bitcoin/src'
Makefile:860: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/fu/Desktop/bitcoin/src'
Makefile:652: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/fu/Desktop/bitcoin/src'
Makefile:509: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

我該如何解決這個問題?提前致謝 !

我不確定這是否是問題所在。顯然,有一個版本的 libssl-dev 會導致一些問題。儘管此站點上列出的步驟指定了 Raspbian(它是 Debian 的衍生產品),但可能值得看看這是否是您的問題。

這些步驟可在<https://en.wikibooks.org/wiki/Radium_Core/Raspberry_Pi>找到。

如果你看到

error: invalid use of incomplete type BIGNUM

在錯誤日誌中,則意味著您擁有 OpenSSL 1.1,並且該項目僅與 OpenSSL 1.0.X 兼容。降級您的 OpenSSL 以使其正常工作。

引用自:https://bitcoin.stackexchange.com/questions/78048