Mac eos 环境搭建

摘要:
首先,官方表示要安装:Boost1.64OpenSSLLLVM4.0可以通过以下命令尽可能完整地安装编译环境:此外,需要安装以下一个,brew不需要,需要手动安装:secp256k1 zkp步骤如下:2。编译LLVM和clang以支持智能合约运行的WASM环境。默认安装的LLVM和clang不包含WASM模块,因此您需要自己编译。以下是仅编译LLVM才会生成WASM模块的实现。因此,统一使用brew管理的llvm。

最近EOS官网出了文档,说可以跑通一个独立测试的节点了。这周尝试自行搭建了一下,由于自己不完全做mac下的开发,且这玩意是C写的,所以make起来遇到不少坑,记录下来。附完整踩坑、填坑记录。

1. 搭建环境

mac下大家应该都用brew来管理包吧。首先官方说要安装:

  • Boost 1.64
  • OpenSSL
  • LLVM 4.0

通过下面命令,可以尽可能全的安装编译环境:

另外需要安装的下面这个,brew并没有,需要手动安装:

  • secp256k1-zkp (Cryptonomex branch)

步骤如下:

2. 编译LLVM和clang来支持智能合约运行的WASM环境

默认安装的LLVM和clang并不会包含WASM模块,所以需要自行编译,下面是实现仅仅编译LLVM只会生成WASM模块。

3. 获取EOS源码

递归取下来所有的EOS及其模块代码:

如果你没有带--recursive标志,可以运行下面的命令来抓下来需要的模块(这个命令我没有试,使用时,要看是不是需要进到目录内):

4. 使用WASM编译器完整编译EOS源码

需要配置WASM_LLVM_CONFIG环境变量来找到上面构建的WASM的编译器。这个编译器是用来编译eos/contracts下的合约例子,和相应的测试用例的。

上面的cmake ..会遇到一些坑,可参考使用第7节中完整填坑后的cmake脚本。

5. 创建并运行一个测试网节点

进入到编译目录

运行上述命令后会立即报错,按Ctrl C强制中止后,命令运行目录下,会生成默认的./data-dir/目录,目录下有./data-dir/config.ini配置。可以略微看看默认的配置,再启动就好了(这里相当于没有配置,帮你生成了默认配置,所有人都一样,不安全):

如果要支持命令行,在config.ini下,添加下述配置。参见 https://eosio.github.io/eos/group__eosc.html

这样,就可以通过EOS自己的命令行工具eosc来进行交互,如下:

输出效果:

6. 可能遇到的坑

6.1 可能遇到GMP包找不到的报错:

解决办法:

6.2 可能遇到ssl相关的错

但明明已经安装,原因是由于新版mac已经移除了openssl,所以我们需要手动配置环境变量,可以在cmake的命令行中通过-D的方式传入OPENSSL_ROOT_DIROPENSSL_LIBRARIES两个环境变量:

6.3 最后的联接时失败Link failed

第一种,使用brew install llvm后会遇到下面的报错:

解决办法,配置环境变量:

另一种可能,是手动安装llvm遇到下面的报错:

初步怀疑这种是因为在第2节中,使用的是默认的llvm编译了,但却后续又使用手动安装的llvm进行后续操作导致的。故统一使用brew管理的llvm

完整的解决过程,参考这里:https://github.com/EOSIO/eos/issues/99

7. 完整的cmake脚本供参考

感谢您的支持

免责声明:文章转载自《Mac eos 环境搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Windows下批处理文件(.bat)的使用NVidia-Docker2安装与常用命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CentOS 7下安装go环境

Golang 安装 首先我们到Golang 官网(由于国内无法访问 Golang 官网,推荐到Golang 中文网下载安装包)下载一个对应操作系统的安装包。 $ cd /tmp && wget https://studygolang.com/dl/golang/go1.16.6.linux-amd64.tar.gz 解压缩安装包: $ su...

linux(10)-linux环境下jdk配置自定义环境变量/etc/profile.d以及卸载自带openjdk

一、删除系统自带OpenJDK 以下操作,请切换至root权限进行操作 1.1、输入:rpm -qa | grep jdk  会查询出系统自带的OpenJDK及版本 [root@localhost /]# rpm -qa |grep jdkjava-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64java...

VMware, Win7, Mac系统之间使用Git版本控制器的解决方案

前一阵子折腾了一阵子Git,用于在Mac系统和Windows系统之间进行代码同步:使用Git在Mac和Windows系统之间进行同步数据 不过当时只是权宜之计,能让我从PC上更新Mac的代码和从Mac上更新PC的代码。 现在新的需求出现了,我们有三种系统,苹果机器上的Mac OS X, Win7宿主机器上VMWare里面的Mac OS X以及Window...

MAC终端中tree命令

Mac没有自带的tree命令,需要额外安装才可以,操作方法有两种: 一、用find命令模拟tree效果 1、mac下默认是没有 tree命令的,不过我们可以使用find命令模拟出tree命令的效果,如显示当前目录的 tree 的命令: find . -print | sed -e 's;[^/]*/;|;g;s;|; |;g' 2、当然你也可以写一个别名来...

mac安装MySQL笔记

一、下载与安装 进入mysql官网:https://www.mysql.com 根据当前macOS版本选择适合的mysq版本,此处选择5.7.26 下载完成后,双击安装 点击继续 同意后继续 开始安装 安装完成后,会给出默认用户名及密码(⚠️一定要记下来) 安装完成后,在偏好设置中出现MySQL应用图标 点击图标,查看MySQL当前状态...

Mac Golang 开发环境配置

Mac Golang 开发环境配置 Golang 介绍 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。由罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的...