Open harajuko opened 7 years ago
Same error, can't seem to find anything to fix it.
Same error when building in Raspberry pi3 using 64bit OS (https://github.com/bamarni/pi64)
`bignum.h: In function 'bool operator>(const CBigNum&, const CBigNum&)': bignum.h:562:83: error: cannot convert 'const CBigNum' to 'const BIGNUM {aka const bignum_st}' for argument '1' to 'int BN_cmp(const BIGNUM, const BIGNUM*)' inline bool operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); } ^
makefile.unix:187: recipe for target 'obj/checkpoints.o' failed make: *** [obj/checkpoints.o] Error 1 `
Same issue here. I haven't found an easy way to move to a compatible version of openssl.
Their is an issue with the version of openssl used you need to install an earlier version see : https://steemit.com/cryptocurrency/@gridcat/how-to-install-coin-magi-wallet-on-your-raspberry-pi
Thanks @S0litaire . I followed the instructions at steemit, but failed, And I failed exactly the same way by building OpenSSL from source and pointing to my build via the OPENSSL_INCLUDE_PATH env variable. I think the existing 1.1 install might be messing everything up. Unfortunately, after uninstalling openssl, I could no longer SSH into the pi. I'm installing with the last build of Jessie to see if that helps. I wonder what it would take to make it compatible with OpenSSL 1.1.x?
Those instructions worked for me. (I was using the 64bit OS at the time, and the 32bit should be the same.) Also a new wallet is being released very shortly (Due to a required magi Hard Fork) Hopefully it's resolved in the new version.
Seems that libssl1.0-dev is what is needed to compile the cli Wallet.. But this creates a problem, because nowadays 1.0 in not anymore in the systems, and is creates a situation were you use the wallet, but not other tools, or instead..
Use your OS, but then you cannot use the wallet...pity situation.. Why they don't release a QT version for ARM64? magi project should be about mobile devices, and so its seems strange that there are not pre-built versions for them
Hi all,
during build magi in raspberry 3 with raspbian stretch using follow make command:
make -f makefile.unix xCPUARCH=armv7l
similar other crypto i have the probleme with bignum and ssl-del 1.1.0f
pi@raspberrypi:~/magi/src $ make -f makefile.unix xCPUARCH=armv7l /bin/sh ../share/genbuild.sh obj/build.h g++ -c -O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DBOOST_SPIRIT_THREADSAFE -I/home/pi/magi/src -I/home/pi/magi/src/hash -I/home/pi/magi/src/obj -DUSE_UPNP=0 -DUSE_IPV6=1 -I/home/pi/magi/src/leveldb/include -I/home/pi/magi/src/leveldb/helpers -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2 -MMD -MF obj/checkpoints.d -o obj/checkpoints.o checkpoints.cpp In file included from addrman.h:9:0, from net.h:20, from checkpoints.h:8, from checkpoints.cpp:8: util.h:258:22: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] return strprintf("%"PRI64d, n); ^ In file included from checkpoints.h:8:0, from checkpoints.cpp:8: net.h:326:20: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] printf("askfor %s %"PRI64d" (%s)\n", inv.ToString().c_str(), nRequestTime, DateTimeStrFormat("%H:%M:%S", nRequestTime/1000000).c_str()); ^ In file included from txdb.h:8:0, from checkpoints.cpp:10: main.h:739:26: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] str += strprintf("(hash=%s, nTime=%d, ver=%d, vin.size=%"PRIszu", vout.size=%"PRIszu", nLockTime=%d)\n", ^ main.h:739:72: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] str += strprintf("(hash=%s, nTime=%d, ver=%d, vin.size=%"PRIszu", vout.size=%"PRIszu", nLockTime=%d)\n", ^ main.h:1177:16: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] printf("CBlock(hash=%s, ver=%d, hashPrevBlock=%s, hashMerkleRoot=%s, nTime=%u, nBits=%08x, nNonce=%u, vtx=%"PRIszu", vchBlockSig=%s)\n", ^ main.h:1432:26: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] return strprintf("CBlockIndex(nprev=%p, pnext=%p, nFile=%u, nBlockPos=%-6d nHeight=%d, nMint=%s, nMoneySupply=%s, nFlags=(%s)(%d)(%s), nStakeModifier=%016"PRI64x", nStakeModifierChecksum=%08x, hashProofOfStake=%s, prevoutStake=(%s), nStakeTime=%d merkle=%s, hashBlock=%s)", ^ In file included from main.h:8:0, from txdb.h:8, from checkpoints.cpp:10: bignum.h:51:24: error: invalid use of incomplete type ‘BIGNUM {aka struct bignum_st}’ class CBigNum : public BIGNUM ^&)’:
bignum.h:96:21: error: ‘BN_init’ was not declared in this scope
BN_init(this);
^
bignum.h: In member function ‘void CBigNum::setulong(long unsigned int)’:
bignum.h:102:33: error: cannot convert ‘CBigNum’ to ‘BIGNUM {aka bignum_st}’ for argument ‘1’ to ‘int BN_set_word(BIGNUM, unsigned int)’
if (!BN_set_word(this, n))
^
bignum.h: In member function ‘long unsigned int CBigNum::getulong() const’:
bignum.h:108:32: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘unsigned int BN_get_word(const BIGNUM)’
return BN_get_word(this);
^
bignum.h: In member function ‘unsigned int CBigNum::getuint() const’:
bignum.h:113:32: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘unsigned int BN_get_word(const BIGNUM)’
return BN_get_word(this);
^
bignum.h: In member function ‘int CBigNum::getint() const’:
bignum.h:118:43: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘unsigned int BN_get_word(const BIGNUM)’
unsigned long n = BN_get_word(this);
^
bignum.h:119: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 main.h:8:0,
from txdb.h:8,
from checkpoints.cpp:10:
bignum.h: In member function ‘void CBigNum::setint64(int64)’:
bignum.h:165: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 ‘uint64 CBigNum::getuint64()’:
bignum.h:170:50: error: cannot convert ‘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:174:32: error: cannot convert ‘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::setuint64(uint64)’:
bignum.h:207: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:235: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()’:
bignum.h:240:50: error: cannot convert ‘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:244:32: error: cannot convert ‘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:266: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:271: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:275: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:289:44: error: cannot convert ‘CBigNum’ to ‘BIGNUM {aka bignum_st}’ for argument ‘3’ to ‘BIGNUM BN_mpi2bn(const unsigned char, int, BIGNUM)’
BN_mpi2bn(&vch[0], vch.size(), this);
^
bignum.h: In member function ‘unsigned int CBigNum::GetCompact() const’:
bignum.h:295: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:298: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 ‘std::__cxx11::string CBigNum::ToString(int) const’:
bignum.h:343:35: error: cannot convert ‘CBigNum’ to ‘BIGNUM {aka bignum_st}’ for argument ‘1’ to ‘void BN_set_negative(BIGNUM, int)’
BN_set_negative(&bn, false);
^
bignum.h:346:29: 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(&bn, &bn0) == 0)
^
bignum.h:348:32: error: cannot convert ‘CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM, const BIGNUM)’
while (BN_cmp(&bn, &bn0) > 0)
^
bignum.h:350: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:356: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:389: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:394: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:408: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:427:41: error: cannot convert ‘CBigNum’ to ‘BIGNUM {aka bignum_st}’ for argument ‘1’ to ‘int BN_lshift(BIGNUM, const BIGNUM, int)’
if (!BN_lshift(this, this, shift))
^
bignum.h: In member function ‘CBigNum& CBigNum::operator>>=(unsigned int)’:
bignum.h:438: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:444: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:453: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:470: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:495: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:503: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:511: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:519: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:528: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:10:0,
from main.h:8,
from txdb.h:8,
from checkpoints.cpp:10:
bignum.h: In function ‘const CBigNum operator%(const CBigNum&, const CBigNum&)’:
bignum.h:537: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 main.h:8:0,
from txdb.h:8,
from checkpoints.cpp:10:
bignum.h: In function ‘const CBigNum operator<<(const CBigNum&, unsigned int)’:
bignum.h:545:33: error: cannot convert ‘CBigNum’ to ‘BIGNUM {aka bignum_st}’ for argument ‘1’ to ‘int BN_lshift(BIGNUM, const BIGNUM, int)’
if (!BN_lshift(&r, &a, shift))
^
bignum.h: In function ‘bool operator==(const CBigNum&, const CBigNum&)’:
bignum.h:557:83: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM, const BIGNUM)’
inline bool operator==(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) == 0); }
^
bignum.h: In function ‘bool operator!=(const CBigNum&, const CBigNum&)’:
bignum.h:558:83: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM, const BIGNUM)’
inline bool operator!=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) != 0); }
^
bignum.h: In function ‘bool operator<=(const CBigNum&, const CBigNum&)’:
bignum.h:559:83: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM, const BIGNUM)’
inline bool operator<=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) <= 0); }
^
bignum.h: In function ‘bool operator>=(const CBigNum&, const CBigNum&)’:
bignum.h:560:83: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM, const BIGNUM)’
inline bool operator>=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); }
^
bignum.h: In function ‘bool operator<(const CBigNum&, const CBigNum&)’:
bignum.h:561:83: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM, const BIGNUM)’
inline bool operator<(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) < 0); }
^
bignum.h: In function ‘bool operator>(const CBigNum&, const CBigNum&)’:
bignum.h:562:83: error: cannot convert ‘const CBigNum’ to ‘const BIGNUM {aka const bignum_st}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM, const BIGNUM)’
inline bool operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); }
~In file included from /usr/include/openssl/rand.h:14:0, from net.h:11, from checkpoints.h:8, from checkpoints.cpp:8: /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 main.h:8:0, from txdb.h:8, from checkpoints.cpp:10: bignum.h: In constructor ‘CBigNum::CBigNum()’: bignum.h:56:21: error: ‘BN_init’ was not declared in this scope BN_init(this); ^ bignum.h: In copy constructor ‘CBigNum::CBigNum(const CBigNum&)’: bignum.h:61:21: error: ‘BN_init’ was not declared in this scope BN_init(this); ^ bignum.h:62: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:64: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:71: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:78: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:82:47: 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: In constructor ‘CBigNum::CBigNum(short int)’: bignum.h:83:47: 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: In constructor ‘CBigNum::CBigNum(int)’: bignum.h:84:47: 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: In constructor ‘CBigNum::CBigNum(long int)’: bignum.h:85:47: 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: In constructor ‘CBigNum::CBigNum(int64)’: bignum.h:86:47: error: ‘BN_init’ was not declared in this scope CBigNum(int64 n) { BN_init(this); setint64(n); } ^ bignum.h: In constructor ‘CBigNum::CBigNum(unsigned char)’: bignum.h:87:47: error: ‘BN_init’ was not declared in this scope CBigNum(unsigned char n) { BN_init(this); setulong(n); } ^ bignum.h: In constructor ‘CBigNum::CBigNum(short unsigned int)’: bignum.h:88:47: error: ‘BN_init’ was not declared in this scope CBigNum(unsigned short n) { BN_init(this); setulong(n); } ^ bignum.h: In constructor ‘CBigNum::CBigNum(unsigned int)’: bignum.h:89:47: error: ‘BN_init’ was not declared in this scope CBigNum(unsigned int n) { BN_init(this); setulong(n); } ^ bignum.h: In constructor ‘CBigNum::CBigNum(long unsigned int)’: bignum.h:90:47: error: ‘BN_init’ was not declared in this scope CBigNum(unsigned long n) { BN_init(this); setulong(n); } ^ bignum.h: In constructor ‘CBigNum::CBigNum(uint64)’: bignum.h:91:47: error: ‘BN_init’ was not declared in this scope CBigNum(uint64 n) { BN_init(this); setuint64(n); } ^ bignum.h: In constructor ‘CBigNum::CBigNum(uint256)’: bignum.h:92:47: error: ‘BN_init’ was not declared in this scope explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); } ^ bignum.h: In constructor ‘CBigNum::CBigNum(const std::vector