【技术教程】用Mac装eosio可能会遇到的两个问题

in #eos6 years ago

Mac上执行./eosio_build.sh,由于网络或Mac本身系统的问题,经常会出现两个问题

问题1: LLVM NOTFOUND

CMake Error at libraries/wasm-jit/Source/Runtime/CMakeLists.txt:26 (find_package):

Could not find a package configuration file provided by "LLVM" (requested

version 4.0) with any of the following names:

LLVMConfig.cmake
llvm-config.cmake

Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH or set

"LLVM_DIR" to a directory containing one of the above files. If "LLVM"

provides a separate development package or SDK, be sure it has been

installed.

这是

解决方法:查找路径,移除,重装

find /usr -name LLVMConfig.cmake -print 2>/dev/null

mac装eosio-1.jpeg

然后

brew remove --force llvm
rm -rf build/
git submodule update --init --recursive
export LLVM_DIR=/usr/local/Cellar/llvm\@4/4.0.1/lib/cmake
./eosio_build.sh

/dev/null : 在类Unix系统中,/dev/null,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个End Of File。

  • 开发过程中,经常会有把一部分个公共库分离出来,是整个项目具有复用性和模块化,这就是git submodule的由来

git submodule update --init --recursive的动作是确保submodule被更新下载,并把路径注册在本地(register path)出来

在eos中submodule有以下一些

位于contracts下:
contracts/libc++/upstream
contracts/musl/upstream

位于externals下:
externals/binaryen
externals/magic_get

位于libaries下:
libraries/appbase
libraries/chainbase
libraries/fc
libraries/softfloat

EOShenzhen在未来的文章会讲解这些库的原理

问题 2: Boost_INCLUDE_DIR not found

Make Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/Users/mac/Desktop/mainnet/eos/libraries/appbase/Boost_INCLUDE_DIR
   used as include directory in directory /Users/mac/Desktop/mainnet/eos/libraries/appbase
/Users/mac/Desktop/mainnet/eos/libraries/chainbase/Boost_INCLUDE_DIR
   used as include directory in directory /Users/mac/Desktop/mainnet/eos/libraries/chainbase
/Users/mac/Desktop/mainnet/eos/libraries/fc/Boost_INCLUDE_DIR
   used as include directory in directory /Users/mac/Desktop/mainnet/eos/libraries/fc
/Users/mac/Desktop/mainnet/eos/tools/Boost_INCLUDE_DIR
   used as include directory in directory /Users/mac/Desktop/mainnet/eos/tools
Boost_INCLUDE_DIR (ADVANCED)
   used as include directory in directory /Users/mac/Desktop/mainnet/eos/contracts/proxy

解决方法

解决思路和LLVM类似,即寻找到boost存储的路径,移除,并重装

find / -name boost

mac装eosio-2.jpeg

如果./eosio_build.sh在一次安装过程中由于网络或者系统的问题出现问题,可能会导致一系列的问题

 history | grep boost

可以执行

brew remove --force boost
rm -rf /usr/local/Cellar/boost
rm -rf /usr/local/include/boost

将保存在Cellar和 include中的boost文件夹删除掉

成功信号
mac装eosio-3.jpeg

参考链接:
https://github.com/EOSIO/eos/issues/3786


相关文章:

We are EOShenzhen

不同入口如何投票:
imToken
火币
portal

关于我们更多联系:
Website:https://eoshenzhen.io

Steem:https://steemit.com/@eoshenzhen

Busy:https://busy.org/@eoshenzhen

Telegram:https://t.me/eoshenzhen

Twitter:https://twitter.com/eostechlover

简书:EOS技术爱好者

新浪微博:EOSTechLover


EOShenzhen的投票账号:eoshenzhenio
100x100-IMG_7963_small.png