Search tutorial to install DEM Wallet on Raspbian (Raspberry pi 3)

  • Hey,


    ich habe eine alte Anleitung gefunden von aphex.


    Hier eine kurze Anleitung zum Bau der Binaries und deren Verwendung:

    1. Raspbian auf der SD Karte des Raspberry Pi installieren
    2. Den Pi booten und die üblichen Einstellungen vornehmen (Passwort, Locale, Zeitzone, SSH, etc.)
      Ich betreibe den PI nur im Textmodus, aber das kann ja jeder für sich entscheiden
    3. Auf dem Pi mit SSH (Windows user können dazu PuTTy verwenden) als user "pi" einloggen und das OS updaten:
      sudo apt-get update
      sudo apt-get upgrade
      sudo shutdown -r now
      (Der Pi rebootet nach dem letzten Befehl und beendet die SSH Session)
    4. Auf dem Pi mit SSH (Windows user können dazu PuTTy verwenden) als user "pi" einloggen und die nötigen Pakete für eMarkd und cgminer installieren:
      sudo apt-get install git autoconf libcurl4-openssl-dev libncurses5-dev libtool libjansson-dev libudev-dev libusb-1.0-0-dev libdb-dev libdb++-dev libboost-all-dev libqrencode-dev libminiupnpc-dev
      sudo apt-get install qt4-qmake libqt4-dev build-essential libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libssl-dev libdb++-dev libminiupnpc-dev git
      apt-get install build-essential libssl-dev libdb-dev libdb++-dev libboost-all-dev libqrencode-dev libminiupnpc-dev
    5. Immernoch auf dem Raspberry als user "pi" angemeldet den eMark Source Code herunterladen:
      git clone https://github.com/emarkproject/eMark
    6. In das Verzeichnis eMark/src wechseln
      cd eMark/src
      Das Makefile anpassen. Dazu mit einem Text Editor (vi, nano, ...) die Datei makefile.unix öffnen und nach "-msse2" suchen. Dieses Flag steht in den CXXFLAGS - wird vom Raspberry aber nicht unterstützt. Also einfach nur diesen einen Parameter "-msse2" (aktuell in Zeile 96) löschen und die Datei speichern.
    7. eMarkd bauen:
      make -f makefile.unix
      (Dieser Schritt dauert ca. 1 Stunde!)
      strip eMarkd
    8. Das eMarkd executable nach /usr/bin kopieren (optional)
      sudo cp eMarkd /usr/bin
    9. eMarkd zum ersten Mal starten:
      eMarkd
      und wieder beenden:
      eMarkd stop
    10. Konfiguration anlegen
      Im Home-Verzeichnis der Benutzers "pi" gibt es jetzt ein verstecktes Verzeichnis ".eMark". Ihr könnt es sichtbar machen, wenn ihr im Homeverzeichnis "ls -la" eingebt. Wechselt in dieses Verzeichnis und legt die Konfigurationsdatei an:
      cd ~/.eMark
      vi eMark.conf
      (alternativ könnt ihr auch nano oder einen anderen Editor verwenden)
      In die Konfigurationsdatei kommt nun folgender Inhalt:

      daemon=1
      server=1
      rpcuser=<username>
      rpcpassword=<password>
      rpcallowip=127.0.0.1
      rpcport=8925
      # addnode=84.200.38.169 eMark Live

      Wählt einen Benutzernamen und ein Passwort! Der rpcport ist frei wählbar - falls ihr mehrere *coin-daemons auf dem Raspi laufen lasst, braucht jeder seinen eigenen Port. Danach die Datei speichern.
    11. eMarkd mit der Konfiguration neu starten
      eMarkd
    12. Der eMarkd Daemon läuft nun im Hintergrund und synchronisiert die Blockchain. Ihr könnt das im Befehl "top" sehen - eMarkd wird einer der aktivsten Prozesse sein, bis die komplette Blockchain lokal gespeichert ist. Falls ihr mehr über die Aktivität von eMarkd wissen möchtet, könnt ihr mit
      tail -f ~/.eMark/debug.log
      verfolgen was grade passiert (mit <ctrl-c> beendet man den tail Befehl und kehrt zum command prompt zurück).
  • Hi,


    Thanks for your answer, it's ok until "make -f makefile.unix"

    My return is :

  • Hi, habe den RasPi 2 nochmal neu aufgesetzt und nach deiner Anleitung versucht die Wallet zu installieren, bekomme den gleichen Fehler.


    Ich poste hier mal die Fehlerausgabe.


    g++ -c -O2 -pthread -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -g -DBOOST_SPIRIT_THREADSAFE -I/home/pi/eMark/src -I/home/pi/eMark/src/obj -DUSE_UPNP=0 -DENABLE_WALLET -I/home/pi/eMark/src/leveldb/include -I/home/pi/eMark/src/leveldb/helpers -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2 -MMD -MF obj/alert.d -o obj/alert.o alert.cpp

    In file included from chainparams.h:9:0,

    from alert.cpp:7:

    bignum.h:57: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:12,

    from serialize.h:22,

    from alert.h:9,

    from alert.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 alert.cpp:7:

    bignum.h: In constructor ‘CBigNum::CBigNum()’:

    bignum.h:62:21: error: ‘BN_init’ was not declared in this scope

    BN_init(this);

    ^

    bignum.h: In copy constructor ‘CBigNum::CBigNum(const CBigNum&)’:

    bignum.h:67:21: error: ‘BN_init’ was not declared in this scope

    BN_init(this);

    ^

    bignum.h:68: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:70: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:77: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:84: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:88:49: 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:89:49: 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:90:49: 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:91:49: 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(long long int)’:

    bignum.h:92:49: error: ‘BN_init’ was not declared in this scope

    CBigNum(long long n) { BN_init(this); setint64(n); }

    ^

    bignum.h: In constructor ‘CBigNum::CBigNum(unsigned char)’:

    bignum.h:93:49: 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:94:49: 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:95:49: 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:96:49: error: ‘BN_init’ was not declared in this scope

    CBigNum(unsigned long n) { BN_init(this); setulong(n); }

    ^

    bignum.h: In constructor ‘CBigNum::CBigNum(long long unsigned int)’:

    bignum.h:97:49: error: ‘BN_init’ was not declared in this scope

    CBigNum(unsigned long long n) { BN_init(this); setuint64(n); }

    ^

    bignum.h: In constructor ‘CBigNum::CBigNum(uint256)’:

    bignum.h:98:49: 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<unsigned char>&)’:

    bignum.h:102:21: error: ‘BN_init’ was not declared in this scope

    BN_init(this);

    ^

    bignum.h: In static member function ‘static CBigNum CBigNum::randBignum(const CBigNum&)’:

    bignum.h:113:39: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_rand_range(BIGNUM*, const BIGNUM*)’

    if(!BN_rand_range(&ret, &range)){

    ^

    bignum.h: In static member function ‘static CBigNum CBigNum::RandKBitBigum(uint32_t)’:

    bignum.h:125:35: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_rand(BIGNUM*, int, int, int)’

    if(!BN_rand(&ret, k, -1, 0)){

    ^

    bignum.h: In member function ‘int CBigNum::bitSize() const’:

    bignum.h:136:33: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_num_bits(const BIGNUM*)’

    return BN_num_bits(this);

    ^

    bignum.h: In member function ‘void CBigNum::setulong(long unsigned int)’:

    bignum.h:142: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:148: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:153: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:158: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:159: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 alert.cpp:7:

    bignum.h: In member function ‘void CBigNum::setint64(int64_t)’:

    bignum.h:205: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_t CBigNum::getuint64()’:

    bignum.h:210: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:214: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_t)’:

    bignum.h:247: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:275: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:280: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:284: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<unsigned char>&)’:

    bignum.h:306: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<unsigned char> CBigNum::getvch() cons ’:

    bignum.h:311: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:315: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:329: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:335: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);

    ^

  • Hier der 2. Teil von der Ausgabe:


    bignum.h:338: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:383: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:386: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:388: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:390: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:396: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 ‘CBigNum CBigNum::pow(const CBigNum&) const’:

    bignum.h:443:41: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_exp(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’

    if (!BN_exp(&ret, this, &e, pctx))

    ^

    bignum.h: In member function ‘CBigNum CBigNum::mul_mod(const CBigNum&, const CBigNum&) const’:

    bignum.h:456:49: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mod_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’

    if (!BN_mod_mul(&ret, this, &b, &m, pctx))

    ^

    bignum.h: In member function ‘CBigNum CBigNum::pow_mod(const CBigNum&, const CBigNum&) const’:

    bignum.h:474:56: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mod_exp(BIGNUM*, const BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’

    if (!BN_mod_exp(&ret, &inv, &posE, &m, pctx))

    ^

    bignum.h:477:53: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mod_exp(BIGNUM*, const BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’

    if (!BN_mod_exp(&ret, this, &e, &m, pctx))

    ^

    bignum.h: In member function ‘CBigNum CBigNum::inverse(const CBigNum&) const’:

    bignum.h:492:49: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘BIGNUM* BN_mod_inverse(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’

    if (!BN_mod_inverse(&ret, this, &m, pctx))

    ^

    bignum.h: In static member function ‘static CBigNum CBigNum::generatePrime(unsigned int, bool)’:

    bignum.h:505:81: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_generate_prime_ex(BIGNUM*, int, int, const BIGNUM*, const BIGNUM*, BN_GENCB*)’

    if(!BN_generate_prime_ex(&ret, numBits, (safe == true), NULL, NULL, NULL))

    ^

    bignum.h: In member function ‘CBigNum CBigNum::gcd(const CBigNum&) const’:

    bignum.h:518:41: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_gcd(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’

    if (!BN_gcd(&ret, this, &b, pctx))

    ^

    bignum.h: In member function ‘bool CBigNum::isPrime(int) const’:

    bignum.h:531:19: warning: ‘int BN_is_prime(const BIGNUM*, int, void (*)(int, int, void*), BN_CTX*, void*)’ is deprecated [-Wdeprecated-declarations]

    int ret = BN_is_prime(this, checks, NULL, pctx, NULL);

    ^~~~~~~~~~~

    In file included from /usr/include/openssl/e_os2.h:13:0,

    from /usr/include/openssl/crypto.h:22,

    from allocators.h:12,

    from serialize.h:22,

    from alert.h:9,

    from alert.cpp:5:

    /usr/include/openssl/bn.h:342:1: note: declared here

    DEPRECATEDIN_0_9_8(int

    ^

    In file included from chainparams.h:9:0,

    from alert.cpp:7:

    bignum.h:531:61: warning: ‘int BN_is_prime(const BIGNUM*, int, void (*)(int, int, void*), BN_CTX*, void*)’ is deprecated [-Wdeprecated-declarations]

    int ret = BN_is_prime(this, checks, NULL, pctx, NULL);

    ^

    In file included from /usr/include/openssl/e_os2.h:13:0,

    from /usr/include/openssl/crypto.h:22,

    from allocators.h:12,

    from serialize.h:22,

    from alert.h:9,

    from alert.cpp:5:

    /usr/include/openssl/bn.h:342:1: note: declared here

    DEPRECATEDIN_0_9_8(int

    ^

    In file included from chainparams.h:9:0,

    from alert.cpp:7:

    bignum.h:531:61: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_prime(const BIGNUM*, int, void (*)(int, int, void*), BN_CTX*, void*)’

    int ret = BN_is_prime(this, checks, NULL, pctx, NULL);

    ^

    bignum.h: In member function ‘bool CBigNum::isOne() const’:

    bignum.h:539:30: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_one(const BIGNUM*)’

    return BN_is_one(this);

    ^

    bignum.h: In member function ‘bool CBigNum::operator!() const’:

    bignum.h:545: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:550: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:564: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:583: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))

    ^

  • und hier ist der 3. Teil


    bignum.h: In member function ‘CBigNum& CBigNum::operator>>=(unsigned int)’:

    bignum.h:594: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:600: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:609: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:626: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:653: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:661: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:669: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:677: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:686: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))

    ^

    bignum.h: In function ‘const CBigNum operator%(const CBigNum&, const CBigNum&)’:

    bignum.h:695:35: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_nnmod(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’

    if (!BN_nnmod(&r, &a, &b, pctx))

    ^

    bignum.h: In function ‘const CBigNum operator<<(const CBigNum&, unsigned int)’:

    bignum.h:703: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:715:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’

    perator==(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) == 0); }

    ^

    bignum.h: In function ‘bool operator!=(const CBigNum&, const CBigNum&)’:

    bignum.h:716:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’

    perator!=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) != 0); }

    ^

    bignum.h: In function ‘bool operator<=(const CBigNum&, const CBigNum&)’:

    bignum.h:717:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’

    perator<=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) <= 0); }

    ^

    bignum.h: In function ‘bool operator>=(const CBigNum&, const CBigNum&)’:

    bignum.h:718:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’

    perator>=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); }

    ^

    bignum.h: In function ‘bool operator<(const CBigNum&, const CBigNum&)’:

    bignum.h:719:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’

    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:720:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’

    operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); }

    ^

    makefile.unix:171: die Regel für Ziel „obj/alert.o“ scheiterte

    make: *** [obj/alert.o] Fehler 1