Cpp-Ethereum

如何在debian上安裝eth?(符號查找錯誤)

  • June 21, 2016

我從 ubuntu ppa 安裝並收到此錯誤。

➜  ~  eth
eth: symbol lookup error: eth: undefined symbol: _ZN3dev3eth14EthashGPUMiner14s_numInstancesE

我可以做什麼/檢查?

我正在進行 debian 測試,所以可能有些衝突。

Ubuntu PPA 與 Debian 不兼容。主要問題是libcrypto++-dev包的版本錯誤。

您必須遵循linux 的通用建構過程並從原始碼編譯它。

安裝依賴項

sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcrypto++-dev libjson-rpc-cpp-dev libmicrohttpd-dev libjsoncpp-dev libargtable2-dev llvm-3.7-dev libedit-dev mesa-common-dev ocl-icd-libopencl1 opencl-headers libgoogle-perftools-dev qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev libqt5webengine5-dev ocl-icd-dev libv8-dev libz-dev

從原始碼編譯

git clone --recursive https://github.com/ethereum/webthree-umbrella
cd webthree-umbrella
mkdir build
cd build
cmake ..
make -j $(nproc)

找到的二進製文件:

./build/libethereum/ethminer/ethminer
./build/libethereum/lllc/lllc
./build/libethereum/ethvm/ethvm
./build/libethereum/ethkey/ethkey
./build/libethereum/test/testeth
./build/alethzero/alethzero/alethzero
./build/alethzero/alethone/alethone
./build/alethzero/alethfive/alethfive
./build/mix/mix
./build/webthree/exp/exp
./build/webthree/eth/eth 
./build/webthree/test/testweb3
./build/webthree/test/ethrpctest/ethrpctest
./build/libweb3core/test/testweb3core
./build/libweb3core/rlp/rlp
./build/solidity/solc/solc
./build/solidity/test/soltest

安裝

make install

對於其他使用 Ubuntu 遇到此問題的使用者:您必須重新安裝 eth和所有依賴項:

Ubuntu 14.4

sudo apt-get update
sudo apt-get --reinstall install -y libboost-random1.55.0 libboost-system1.55.0 libboost-thread1.55.0 libc6 libcurl3 libgcc1 libjson-rpc-cpp-dev libjsoncpp0 libreadline6 libstdc++6 ocl-icd-libopencl1 libethereum miniupnpc libleveldb1 libmicrohttpd10 libglu1-mesa freeglut3 libboost-random1.55.0 libboost-system1.55.0 libboost-thread1.55.0 libc6 libgcc1 libjson-rpc-cpp-dev libjsoncpp0 libstdc++6 ocl-icd-libopencl1 libethereum-gui qml-module-qtquick-controls qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qt-labs-settings qml-module-qtwebengine ethereum eth

其他 Ubuntu 版本

找出依賴項並重新安裝它們:

sudo apt-get update
sudo apt-cache depends eth | grep '[ |]Depends: [^<]' | cut -d: -f2 | tr -d ' ' | xargs sudo apt-get --reinstall install -y
sudo apt-cache depends mix | grep '[ |]Depends: [^<]' | cut -d: -f2 | tr -d ' ' | xargs sudo apt-get --reinstall install -y

如果這不能解決問題,也許可以關注上游的問題。

引用自:https://ethereum.stackexchange.com/questions/1424