Ubuntu14.04 EOS編譯測(cè)試

我的環(huán)境是ubuntu14.04,使用如下指令進(jìn)行編譯安裝

1,安裝開(kāi)發(fā)工具

sudo apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main"

sudo apt-get update

sudo apt-get install clang-4.0 lldb-4.0 libclang-4.0-dev cmake make \
                     libbz2-dev libssl-dev libgmp3-dev \
                     autotools-dev build-essential \
                     libbz2-dev libicu-dev python-dev \
                     autoconf libtool git


2,由于我使用的系統(tǒng)時(shí)ubuntu14.04,cmake版本默認(rèn)安裝的是3.2.2
需要安裝3.4.3版本

wget http://www.cmake.org/files/v3.4/cmake-3.4.3.tar.gz  --no-check-certificate 
tar xf cmake-3.4.3.tar.gz
cd cmake-3.4.3
./configure
make
sudo apt-get install checkinstall
sudo checkinstall
sudo make install
sudo mv /usr/bin/cmake /usr/bin/cmakebak
sudo ln -s /usr/local/bin/cmake /usr/bin/cmake

3,升級(jí)gcc版本,ubuntu14.04默認(rèn)是gcc4.8的,升級(jí)使用gcc7

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7

編譯方式有兩種
一:自動(dòng)化編譯安裝方式:
1,下載源碼

git clone https://github.com/eosio/eos --recursive
cd eos
git checkout DAWN-2018-02-14

2,修改~/eos/buid.sh最后幾行,修改了CXX_COMPILER和C_COMPILER改為如下:


CXX_COMPILER=g++-7
C_COMPILER=gcc-7

if [ $ARCH == "darwin" ]; then
  CXX_COMPILER=clang++
  C_COMPILER=clang
fi

# Build EOS
cmake   -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} -DCMAKE_C_COMPILER=${C_COMPILER} -DWASM_LLVM_CONFIG=${WASM_LLVM_CONFIG} -DBINARYEN_BIN=${BINARYEN_BIN} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DOPENSSL_LIBRARIES=${OPENSSL_LIBRARIES} ..
make -j4

3,執(zhí)行編譯腳本:

cd ~/eos
./build.sh ubuntu full
cd ~/eos/build
sudo make install

二,手動(dòng)編譯,比較麻煩,安裝各種依賴
1,安裝boost1.66

cd ~
curl -L https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.bz2 > boost_1.66.0.tar.bz2
tar xjf boost_1.66.0.tar.bz2
cd boost_1_66_0/
echo "export BOOST_ROOT=$HOME/boost_1_66_0" >> ~/.bash_profile
source ~/.bash_profile
./bootstrap.sh "--prefix=$BOOST_ROOT"
./b2 install
source ~/.bash_profile

2,安裝secp256k1-zkp

cd ~
git clone https://github.com/cryptonomex/secp256k1-zkp.git
cd secp256k1-zkp
./autogen.sh
./configure
make
sudo make install

3,需要使用WASM 編譯器, EOS 依賴 binaryen

cd ~
git clone https://github.com/WebAssembly/binaryen.git
cd ~/binaryen
git checkout tags/1.37.14
cmake . && make

4,添加BINARYEN_ROOT 到 your .bash_profile:

echo "export BINARYEN_ROOT=~/binaryen" >> ~/.bash_profile
source ~/.bash_profile

5,默認(rèn)情況下llvm和clang沒(méi)有包含wasm構(gòu)建目標(biāo),所以需要自己構(gòu)建

mkdir  ~/wasm-compiler
cd ~/wasm-compiler
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git
cd llvm/tools
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/clang.git
cd ..
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=.. -DLLVM_TARGETS_TO_BUILD= -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly -DCMAKE_BUILD_TYPE=Release ../
make -j4 install

6,編譯eos源碼

cd ~
git clone https://github.com/eosio/eos --recursive
mkdir -p ~/eos/build && cd ~/eos/build
cmake  -DCMAKE_CXX_COMPILER=g++-7 -DCMAKE_C_COMPILER=gcc-7  -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=~/wasm-compiler/llvm   -DOPENSSL_LIBRARIES=/lib/x86_64-linux-gnu/ ..
make -j4

錯(cuò)誤處理:
1,g++: internal compiler error: Killed (program cc1plus)
解決:主要原因大體上是因?yàn)閮?nèi)存不足,有點(diǎn)坑 臨時(shí)使用交換分區(qū)來(lái)解決:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,954評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • 1 獲取代碼 2 構(gòu)建EOS2.1 自動(dòng)構(gòu)建2.1.1 Ubuntu 16.102.1.2 MacOS Sierr...
    cenkai88閱讀 1,223評(píng)論 0 0
  • 最近雖然忙的沒(méi)有運(yùn)動(dòng),但心中卻時(shí)刻警惕著吃減肥餐的問(wèn)題,早晨跑步了6公里,回來(lái)后的午餐就更不能大魚(yú)大肉的吃了,做什...
    灬梁小沫閱讀 224評(píng)論 3 0
  • 如果說(shuō)第一節(jié)第二節(jié)課講得是戰(zhàn)略,那么這次課講得是實(shí)實(shí)在在的戰(zhàn)術(shù)問(wèn)題??蚣懿季质菍懞梦恼碌牡谝徊?,就如同劍鋒出鞘。如...
    踏雪折梅閱讀 181評(píng)論 1 1

友情鏈接更多精彩內(nèi)容