【技术教程】用Mac装eosio可能会遇到的两个问题
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
然后
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
如果./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文件夹删除掉
成功信号
参考链接:
https://github.com/EOSIO/eos/issues/3786
相关文章:
关于我们更多联系:
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