【发布时间】:2020-07-02 14:08:15
【问题描述】:
我在这个问题上遇到了将近两天的麻烦,我的 make 在命令后不久崩溃。我按照比特币 github 自述文件中的 OSx 设置,执行了 ./autogen.sh 和 ./configure 。 我尝试安装 gcc,卸载并重新安装 openssl,以及几乎所有发生在我身上的事情。请注意,make 命令在 master 分支上运行良好,只是在最新的分支上失败(在我的例子中是 V0.9.5)。这可能是一个简单的解决方案,也可能不是一个简单的解决方案,但我在这一点上真的很难过,并感谢任何帮助。 这是我在执行 make 命令后不久遇到的错误:
Making all in src
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in .
CXX bitcoind.o
In file included from bitcoind.cpp:9:
In file included from ./main.h:13:
./bignum.h:56:24: error: base class has incomplete type
class CBigNum : public BIGNUM
~~~~~~~^~~~~~
/usr/local/Cellar/openssl@1.1/1.1.1d/include/openssl/ossl_typ.h:80:16: note: forward declaration of 'bignum_st'
typedef struct bignum_st BIGNUM;
^
In file included from bitcoind.cpp:9:
In file included from ./main.h:13:
./bignum.h:61:9: error: use of undeclared identifier 'BN_init'
BN_init(this);
^
./bignum.h:66:9: error: use of undeclared identifier 'BN_init'
BN_init(this);
^
./bignum.h:67:14: error: no matching function for call to 'BN_copy'
if (!BN_copy(this, &b))
^~~~~~~
/usr/local/Cellar/openssl@1.1/1.1.1d/include/openssl/bn.h:219:9: note: candidate function not viable: no known conversion
from 'CBigNum *' to 'BIGNUM *' (aka 'bignum_st *') for 1st argument
BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b);
^
In file included from bitcoind.cpp:9:
In file included from ./main.h:13:
./bignum.h:69:13: error: no matching function for call to 'BN_clear_free'
BN_clear_free(this);
^~~~~~~~~~~~~
/usr/local/Cellar/openssl@1.1/1.1.1d/include/openssl/bn.h:218:6: note: candidate function not viable: no known conversion
from 'CBigNum *' to 'BIGNUM *' (aka 'bignum_st *') for 1st argument
void BN_clear_free(BIGNUM *a);
^
In file included from bitcoind.cpp:9:
In file included from ./main.h:13:
./bignum.h:76:14: error: no matching function for call to 'BN_copy'
if (!BN_copy(this, &b))
^~~~~~~
/usr/local/Cellar/openssl@1.1/1.1.1d/include/openssl/bn.h:219:9: note: candidate function not viable: no known conversion
from 'CBigNum *' to 'BIGNUM *' (aka 'bignum_st *') for 1st argument
BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b);
^
In file included from bitcoind.cpp:9:
In file included from ./main.h:13:
./bignum.h:83:9: error: no matching function for call to 'BN_clear_free'
BN_clear_free(this);
^~~~~~~~~~~~~
/usr/local/Cellar/openssl@1.1/1.1.1d/include/openssl/bn.h:218:6: note: candidate function not viable: no known conversion
from 'CBigNum *' to 'BIGNUM *' (aka 'bignum_st *') for 1st argument
void BN_clear_free(BIGNUM *a);
^
In file included from bitcoind.cpp:9:
In file included from ./main.h:13:
./bignum.h:87:37: error: use of undeclared identifier 'BN_init'
CBigNum(signed char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^
./bignum.h:88:37: error: use of undeclared identifier 'BN_init'
CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^
./bignum.h:89:37: error: use of undeclared identifier 'BN_init'
CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^
./bignum.h:90:37: error: use of undeclared identifier 'BN_init'
CBigNum(long n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^
./bignum.h:91:37: error: use of undeclared identifier 'BN_init'
CBigNum(long long n) { BN_init(this); setint64(n); }
^
./bignum.h:92:37: error: use of undeclared identifier 'BN_init'
CBigNum(unsigned char n) { BN_init(this); setulong(n); }
^
./bignum.h:93:37: error: use of undeclared identifier 'BN_init'
CBigNum(unsigned short n) { BN_init(this); setulong(n); }
^
./bignum.h:94:37: error: use of undeclared identifier 'BN_init'
CBigNum(unsigned int n) { BN_init(this); setulong(n); }
^
./bignum.h:95:37: error: use of undeclared identifier 'BN_init'
CBigNum(unsigned long n) { BN_init(this); setulong(n); }
^
./bignum.h:96:37: error: use of undeclared identifier 'BN_init'
CBigNum(unsigned long long n) { BN_init(this); setuint64(n); }
^
./bignum.h:97:37: error: use of undeclared identifier 'BN_init'
explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); }
^
./bignum.h:101:9: error: use of undeclared identifier 'BN_init'
BN_init(this);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[3]: *** [bitcoind.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
【问题讨论】: