经过几天的摸索,在重试编译了很多次之后,终于得出了一个结论:如果想测试 EOS 请使用 ubuntu 系统,非常方便。下面将近期的摸索的过程跟大家分享一下。
在 ubuntu 上编译
这里重点讲一下在 ubuntu 上编译 EOS。经过我数次实验,发现目前 EOS 官方推荐的 ubuntu 16.10版本已经不适合再做测试环境了,因为该版本官方已不再支持。之后我验证过 ubuntu 17.10和 ubuntu 16.04版本均可以在不做任何配置的情况下编译成功,并成功运行。(注意:以上操作系统均选用64位)
编译步骤
准备一个ubuntu系统,我尝试使用过虚拟机自己安装,也使用过阿里云的服务器均可以编译。
下载EOS代码
git clone https://github.com/EOSIO/eos.git -b DAWN-2018-02-14 --recursive
该指令有两个地方需要重点关注一下,首先是下载的版本应该是DAWN-2018-02-14版本,否则连接上测试网络后无法完全同步区块;另一个要注意的地方是要加入--recursive参数,否则EOS关联的子项目没法下载。如果命令没有加入参数,可以使用下面的命令来更新子项目
git submodule update --init --recursive
自动编译
cd eos
./build.sh ubuntu full
然后就是漫长的等待了,具体等待时间跟你的cpu配置和网络带宽强相关,。这里注意一下编译命令后面有个full参数,该参数是一个可选参数可以有 full 和 build 两个选项,full用于第一次编译或完全重新编译,它会重新尝试编译安装依赖项,build是仅编译EOS代码,在变更代码后可以使用以下命令重新编译
./build.sh ubuntu build
在MacOS上编译
先说结论,我经过几次的编译,我个人建议不要在MacOS测试编译EOS,如果需要编译就一定要遵循官方的推荐的MacOS 10.12版本,不要使用10.13版本。如果已经升级为最新版本,那么在编译时需要注意boost库的版本,不能高于1.65。这个在编译时不会提示,因为Mac下的包管理工具brew不支持特定版本的包下载。可以使用该地址https://homebrew.bintray.com/bottles/boost-1.65.1.high_sierra.bottle.tar.gz将boost1.65下载到本地,然后手工解压并复制到/usr/local/Cellar/boost。编译使用以下命令:
./build.sh darwin full
最后一步
需要进入build目录然后执行以下命令:
cd build
make install
该命令会将编译好的可执行文件、头文件、库文件和模板文件安装到build下的install目录下,在该目录的bin下有所有编译好的命令,包括eosd、eosc、eoscpp等等。