zoukankan      html  css  js  c++  java
  • ubuntu环境下编译bitcoin(比特币)全过程

    1.首先从github上clone最新的bitcoin源代码

    git clone https://github.com/bitcoin/bitcoin.git

    2.进入clone下来的代码目录,查看当前版本(这里我切换到了v0.20.0版本)

    cd ./bitcoin
    git tag -l
    git checkout v0.20.0

    3.安装autoconf,安装成功之后运行代码目录下的./autogen.sh

    sudo apt install autoconf
    ./autogen.sh

    4.出现了错误信息,configure: error: PKG_PROG_PKG_CONFIG macro not found. Please install pkg-config and re-run autogen.sh,提示安装libtool,如果没有安装gcc,g++还需要安装这两项,安装完成之后再一次运行./autogen.sh应该就可以成功了,运行成功之后会在代码目录下生成./configure

    sudo apt install libtool gcc g++
    ./autogen.sh

    5.运行./configure,出现错误,需要安装pkg-config之后重新./autogen.sh(倒退回上面步骤了) 

    sudo apt install pkg-config
    ./autogen.sh

    6.再次报错,configure: error: libdb_cxx headers missing, Bitcoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality),安装libdb++-dev可解决问题,安装之后重新./configure

    sudo apt install libdb++-dev

    7.出现了一个警告和一个错误,

    checking for QT5... no
    configure: WARNING: Qt dependencies not found; bitcoin-qt frontend will not be built
    checking whether to build Bitcoin Core GUI... no
    checking for Berkeley DB C++ headers... default
    configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)

    或者qt5安装之后有警告

    configure: WARNING: LRELEASE not found; bitcoin-qt frontend will not be built

    需要安装qt5-default和qttools5-dev-tools,以及从源代码编译Berkeley DB

    sudo apt install qt5-default qttools5-dev-tools

    编译Berkeley DB

    wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
    tar -xzvf db-4.8.30.NC.tar.gz
    cd db-4.8.30.NC/build_unix
    ../dist/configure --enable-cxx
    make
    sudo make install

    8.加入参数重新运行./configure

    ./configure CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include -O2" LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib"

    报错

    checking for boostlib >= 1.47.0 (104700)... configure: We could not detect the boost libraries (version MINIMUM_REQUIRED_BOOST or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.
    checking whether the Boost::System library is available... no
    checking whether the Boost::Filesystem library is available... no
    checking whether the Boost::Thread library is available... no
    checking whether the Boost::Unit_Test_Framework library is available... no
    checking for dynamic linked boost test... no
    checking for mismatched boost c++11 scoped enums... ok
    checking for QR... no
    checking for EVENT... no
    configure: error: libevent version 2.0.21 or greater not found.

    把这些依赖一下装齐了吧

    sudo apt install libevent-dev libzmq5-dev doxygen libboost1.58-all-dev

    然后重新

    ./configure CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include -O2" LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib"

    这个时候依然还是有一个警告,目前暂未找到解决的方法,但是不影响编译的功能

    configure: WARNING: "xgettext is required to update qt translations"

    9../configure没有问题,之后就可以make了,bitcoin项目比较大编译的时间可能需要半小时,耐心等待吧

  • 相关阅读:
    Linux (Ubuntu)安装ssh
    Linux (Ubuntu)提示ifconfig:找不到命令
    Docker介绍
    微服务用到的技术
    移动端BI的设计
    Cobbler Web管理(二)
    基于CentOS7环境下的Cobbler部署介绍(一)
    使用google-perftools优化nginx内存管理提升性能
    解决 nginx 配置TLS1.2无效,总是TLS1.0的问题
    在nginx中将爬虫过来的请求转到指定的后端服务
  • 原文地址:https://www.cnblogs.com/jimaojin/p/13211359.html
Copyright © 2011-2022 走看看