下載了btcpool源碼,想要在ubuntu16.04上面運(yùn)行,可是編譯不過~!
難到源碼真的有問題嗎?有沒有人碰到過此問題?
有誰有成功編譯btcpool源碼的經(jīng)驗?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
下面是我的詳細(xì)編譯過程:
在編譯btcpool之前,一定要先下載安裝bitcoin的源碼
新建目錄~/work/bitcoin 并進(jìn)入,下載bitcoin的源碼。
git clone https://github.com/bitcoin/bitcoin.git
安裝此源碼可能會報錯,先做如下操作
sudo apt-get install libdb5.1++-dev
運(yùn)行./autogen.sh
運(yùn)行./configure --with-incompatible-bdb
然后再make , make install
新建目錄~/work/code/并進(jìn)入,下載btcpool源碼
git clone https://github.com/btccom/btcpool.git
解壓源碼,進(jìn)入根目錄下面的install目錄,運(yùn)行install_btcpool.sh
sudo bash install_btcpool.sh
運(yùn)行會報錯,之后不要再次運(yùn)行此腳本
進(jìn)入btcpool-master的根目錄,如果沒有build目錄則創(chuàng)建之,進(jìn)入,運(yùn)行cmake命令
注意:直接用cmake會出錯,因為CMakeLists.txt里面有兩個變量(CHAIN_TYPE, CHAIN_SRC_ROOT)需要定義,可以在CMakeLists.txt里面寫死其定義
set(CHAIN_TYPE "BTC")
set(CHAIN_SRC_ROOT "/home/zc/work/bitcoin/bitcoin-master")
也可以在執(zhí)行cmake時加入到參數(shù)里面(CHAIN_SRC_ROOT的地址是bitcoin源碼的本地的地址)
cmake -DCHAIN_TYPE=BTC -DCHAIN_SRC_ROOT=/home/zc/work/bitcoin/bitcoin-master ..
然后make,可是出錯了:
/home/zc/work/code/btcpool-master/src/Stratum.h:290:26: error: ‘CTxDestination’ does not name a type
const CTxDestination &poolPayoutAddr,
^
In file included from /home/zc/work/code/btcpool-master/src/JobMaker.cc:24:0:
/home/zc/work/code/btcpool-master/src/JobMaker.h:65:3: error: ‘CTxDestination’ does not name a type
CTxDestination poolPayoutAddr_;
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc: In member function ‘bool JobMaker::init()’:
/home/zc/work/code/btcpool-master/src/JobMaker.cc:88:51: error: ‘IsValidDestinationString’ was not declared in this scope
if (!IsValidDestinationString(poolPayoutAddrStr_)) {
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc:93:3: error: ‘poolPayoutAddr_’ was not declared in this scope
poolPayoutAddr_ = DecodeDestination(poolPayoutAddrStr_);
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc:93:57: error: ‘DecodeDestination’ was not declared in this scope
poolPayoutAddr_ = DecodeDestination(poolPayoutAddrStr_);
^
/home/zc/work/code/btcpool-master/src/JobMaker.cc: In member function ‘void JobMaker::sendStratumJob(const char*)’:
/home/zc/work/code/btcpool-master/src/JobMaker.cc:562:49: error: ‘poolPayoutAddr_’ was not declared in this scope
if (!sjob.initFromGbt(gbt, poolCoinbaseInfo_, poolPayoutAddr_, blockVersion_,
難道源碼有問題嗎?此問題還待解決....
源碼沒有問題,你只需要按照文檔操作便可編譯成功。
以 Ubuntu 16.04 LTS 為例,主要參考文檔(均來自項目源碼)如下
下面是一鍵安裝 btc-pool 腳本,主要參考上述文檔,已測
#!/bin/bash
# 一鍵安裝 btc-pool
#
# OS: Ubuntu 16.04 LTS
# @author 李毅
set -e
build_dir=/tmp
# 由 jarven 測試提供,https://segmentfault.com/q/1010000014060045?_ea=3538159
# 不需要兼容舊版 bitcoin,及不需要錢包功能的時候,可以使用系統(tǒng)默認(rèn)的 libdb-dev
# 及 libdb++-dev 庫,請把下一行的 false 改成 true。
use_latest_libdb=false
cpus=`grep -Ee 'processor\s:' /proc/cpuinfo | wc -l`
# 禁止 root 用戶運(yùn)行此腳本
#=========================
if [ "$UID" -eq 0 ] ; then
echo "禁止 root 用戶運(yùn)行此腳本"
exit 1
fi
# 創(chuàng)建臨時目錄
#=============
[ -d $build_dir ] || mkdir -p $build_dir
# 安裝系統(tǒng)必要組件
#==================
# aptitude
if ! which aptitude >/dev/null 2>&1 ; then
sudo apt-get update
sudo apt-get install -y aptitude
fi
# 安裝 libboost-all-dev 需要人工干預(yù)
if ! aptitude show libboost-all-dev > /dev/null 2>&1 ; then
echo ""
echo "!!! 安裝 libboost-all-dev 需要人工干預(yù),以降級某些依賴項的版本 !!!"
echo "<1> 第一次詢問時按下 'n' 鍵"
echo "<2> 第二次詢問時按下 'y' 鍵"
aptitude install libboost-all-dev
fi
#
sudo aptitude install -y \
build-essential autotools-dev libtool autoconf automake pkg-config cmake \
openssl libssl-dev libcurl4-openssl-dev libconfig++-dev \
libgmp-dev libmysqlclient-dev libzookeeper-mt-dev \
libzmq3-dev libgoogle-glog-dev libevent-dev
# 編譯安裝 librdkafka-v0.9.1
#===========================
if ! pkg-config --libs rdkafka ; then
sudo aptitude install -y zlib1g zlib1g-dev python
cd $build_dir
if [ ! -f librdkafka-0.9.1.tar.gz ]; then
wget -O librdkafka-0.9.1.tar.gz https://github.com/edenhill/librdkafka/archive/0.9.1.tar.gz
tar zxvf librdkafka-0.9.1.tar.gz
fi
cd librdkafka-0.9.1
make clean
./configure
make
sudo make install
fi
# 編譯 biticoin
#==============
sudo aptitude install -y \
build-essential libtool autotools-dev automake pkg-config libssl-dev \
libevent-dev bsdmainutils python3
if [ "$use_latest_libdb" = true ]; then
sudo aptitude install -y libdb-dev libdb++-dev
else if ! aptitude show libdb4.8++-dev >/dev/null 2>&1 ; then
# 安裝低版 libdb4.8
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install -y libdb4.8-dev libdb4.8++-dev
fi
cd $build_dir
if [ ! -f bitcoin-0.16.0rc1.tar.gz ]; then
wget -O bitcoin-0.16.0rc1.tar.gz https://github.com/bitcoin/bitcoin/archive/v0.16.0rc1.tar.gz
tar zxf bitcoin-0.16.0rc1.tar.gz
fi
cd $build_dir/bitcoin-0.16.0rc1
./autogen.sh
if [ "$use_latest_libdb" = true ]; then
./configure --with-incompatible-bdb --disable-wallet
else
./configure
fi
make -j $cpus
# 編譯 btcpool
#=============
cd $build_dir
if [ ! -d btcpool ]; then
git clone https://github.com/btccom/btcpool.git
fi
cd $build_dir/btcpool
[ ! -d build ] && mkdir build
cd build
# Release build
cmake -DCHAIN_TYPE=BTC -DCHAIN_SRC_ROOT=$build_dir/bitcoin-0.16.0rc1 ..
make -j $cpus
若有問題,請隨時留言。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。