Компиляция биткойнов (неопределенная ссылка на BlockAssembler :: BlockAssembler (CChainParams const &) ') - PullRequest
0 голосов
/ 18 октября 2018

Я получаю сообщение об ошибке после команды make, например,

неопределенная ссылка на `BlockAssembler :: BlockAssembler (CChainParams const &) '

и в последней

Makefile: 774: рецепт для цели 'все-рекурсивный' не выполнен

make: ** [all-recursive] Ошибка 1

Я выполнил все шаги, указанные здесь: -

https://www.toshblocks.com/bitcoin/compile-bitcoin-source-code-ubuntu-16-04-lts/

Вывод: -

 Making all in src
    make[1]: Entering directory '/home/khushbu/bitcoin/src'
    make[2]: Entering directory '/home/khushbu/bitcoin/src'
    make[3]: Entering directory '/home/khushbu/bitcoin'
    make[3]: Leaving directory '/home/khushbu/bitcoin'
      CXXLD    bitcoind
    libbitcoin_server.a(libbitcoin_server_a-mining.o): In function `generateBlocks(std::shared_ptr<CReserveScript>, int, unsigned long, bool)':
    /home/khushbu/bitcoin/src/rpc/mining.cpp:122: undefined reference to `BlockAssembler::BlockAssembler(CChainParams const&)'
    /home/khushbu/bitcoin/src/rpc/mining.cpp:122: undefined reference to `BlockAssembler::CreateNewBlock(CScript const&, bool)'
    /home/khushbu/bitcoin/src/rpc/mining.cpp:128: undefined reference to `IncrementExtraNonce(CBlock*, CBlockIndex const*, unsigned int&)'
    libbitcoin_server.a(libbitcoin_server_a-mining.o): In function `getmininginfo(JSONRPCRequest const&)':
    /home/khushbu/bitcoin/src/rpc/mining.cpp:216: undefined reference to `nLastBlockWeight'
    /home/khushbu/bitcoin/src/rpc/mining.cpp:217: undefined reference to `nLastBlockTx'
    libbitcoin_server.a(libbitcoin_server_a-mining.o): In function `getblocktemplate(JSONRPCRequest const&)':
    /home/khushbu/bitcoin/src/rpc/mining.cpp:521: undefined reference to `BlockAssembler::BlockAssembler(CChainParams const&)'
    /home/khushbu/bitcoin/src/rpc/mining.cpp:521: undefined reference to `BlockAssembler::CreateNewBlock(CScript const&, bool)'
    /home/khushbu/bitcoin/src/rpc/mining.cpp:533: undefined reference to `UpdateTime(CBlockHeader*, Consensus::Params const&, CBlockIndex const*)'
    collect2: error: ld returned 1 exit status
    Makefile:3888: recipe for target 'bitcoind' failed
    make[2]: *** [bitcoind] Error 1
    make[2]: Leaving directory '/home/khushbu/bitcoin/src'
    Makefile:10190: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/home/khushbu/bitcoin/src'
    Makefile:774: recipe for target 'all-recursive' failed
    make: *** [all-recursive] Error 1

Как решить эту ошибку и успешно скомпилировать исходный код биткойнов?

1 Ответ

0 голосов
/ 19 октября 2018

Этот урок помог мне решить проблему.

https://www.youtube.com/watch?v=l0A91Yx9juQ

В соответствии с замечаниями по сборке Unix

https://github.com/bitcoin/bitcoin/blob/master/doc/build-UNIX.md

и загрузкой необходимых зависимостей можно решить эту проблему.Я думаю, что проблема произошла из-за плохой установки Беркли БД, и поэтому я удалил все старые файлы, а затем снова следовал инструкциям из build-UNIX.md.

и загрузите зависимости, которые являются

sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3  

sudo apt-get install libssl-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev

Это сработало для меня.Спасибо!

...