概览
cpp-ethereum 代码库在几个Git库中传播,库在Git上被分组为webthree-umbrella库下的子模块。git
咱们用通常的CMake编译系统来生成平台特定的架构文件,这意味着工做流程和你用的任何操做系统都很是相似:github
特定操做系统安装说明
为Linux建立 注意 —— 经过从源创建和禁用 VMJIT及其余特征,也可以让客户端适用于32位 Ubuntu。咱们可能会接受 pull请求来增长这样的支持,但不会投入任什么时候间来专门开发支持 Ubuntu 32位架构。web
Linux有个发行版特定程序包系统步骤的幻灯片,这是咱们在开始从源创建以前要作的第一件事。下面的章节试图体现这些步骤。若是你正在使用不一样的发行版和hit版本,请告诉咱们。json
克隆资源库 要克隆源代码,请执行如下指令:api
git clone —recursive https://github.com/ethereum/w...xcode
安装依赖(发行版特定)
为Ubuntu安装依赖
Ubuntu Trusty Tahr (14.04) 步骤:安全
Ubuntu Utopic Unicorn (14.10) 步骤:架构
Ubuntu Vivid Vervet (15.04) 步骤:app
Ubuntu WilyWerewolf (15.10) 步骤:ionic
Ubuntu Xenial Xerus (16.04) 步骤:
为Fedora安装依赖
Fedora 20 步骤:
Fedora 21 步骤:
从github创建json-rpc做为每一个https://github.com/ethereum/c...:
Fedora 22 Fedora 22依赖可能会比已经安装的更多:
安装 gcc 4.9版本!Fedora 22 和一个不一样的编译器 (CC v5.3)一块儿。它 不能编译 webthreeumbrella,因此我从SRC安装了 gcc 4.9版本!
检查一下你有可用的 gcc4.9安装在/usr/local ,我把它安装在了 /home/app/gcc49,你能够本身选择在google上阅读说明怎么编译 gcc! 之后在每一个 cmake以前,你都要这样用gcc4.9编译 webthree-umbrella所需的全部东西:
有了这个,你用 gcc4.9而不是和发行版F22一块儿的来编译。不推荐卸载和你发行版一块儿的编译器!你也能够用符号连接来工做。
从 Fedora COPR REPO LLVM3.7安装,使用:
我必需要这样作是由于 Fedora 22从股票资源库和 llvm-3.5一块儿!可能也有其余解决方法,可是这个方法对我来讲管用。 从 SRC安装CryptoPP https://github.com/weidai11/c... CRYPTOPP_5_6_2:
从COPR “dnf copr enable @kdesig/Qt5”安装QT5,更新的QT5版本:
这应该在 COPR repo安装QT5 5.6.0 版本。 其余用户的程序包,我没有测试。 从 https://github.com/qtproject/... 安装 qtwebengine,我安装5.6.0 版本,其余的也有用,找找看 :D
从github安装json-rpc https://github.com/ethereum/c...
确保检查jsonrpcstub是否在控制台有效,输入“jsonrpcstub” 查看是否有回答。若是答案是没有参数或s-l-t,就说明有效,但若是没有获得的文件,你就得把丢失的部分符号链接到libs dir /usr/local/lib64或者usr/local/lib,取决于文件blabla的位置。试着用 “updatedb” 找到而后“locate blabla.so”
如今试着编译,应该会有效,不然就是有丢失的符号链接由于没有这样的易嵌适文件或有一些丢失的数据包,试着用像这样“dnf search packname”或 “dnf list packname”的dnf找到它们。我要说的是这不是个5分钟的webthree-umbrella编译,享受Tflux99。
为OpenSUSE安装依赖
这是为在OpenSUSE上创建最新webthreeumbrella获取所需依赖的方法。它在Leap 42.1上完成了,可是应该有Tumbleweed和13.x可用的同等数据包。 主要资源库提供的第一个依赖:
能够用通用的libOpenCL1,可是我只用来自AMD驱动器资源库fglrx64_opencl_SUSE421的AMD 专有包测试过。
这些包裹不在标准的资源库,可是能够用OpenSUSE 建立服务包搜索和YaST 1-Click安装找到:
为OpenSUSE安装依赖 在Arch Linux编译webthree-umbrella须要来自官方资源库和Arch User资源库(AUR)的依赖。要从官方资源库安装,使用pacman。要从AUR安装包裹,有不少可用的AUR助手。 在本指南中,使用的是AUR助手yaourt。
安装依赖
编译源代码 在这一步,能够规定以太坊安装文件夹,尽管文件夹的规定是可选的。若是不指定,二进制文件夹会位于建立文件夹。然而,就本向导,假定以太坊文件会被安装在/opt/eth下面。使用/opt的缘由是比起安装在好比说/usr下面,这样能使之后删除以太坊文件夹更容易。并且/opt一般用于安装不受包裹系统管理的软件,好比手动编译程序。
成功编译和安装以后,以太坊二进制能够在/opt/eth/bin,/opt/eth/lib的共享库和/opt/eth/include标题文件中找到。
规定以太坊库路径 因为以太坊被安装在/opt/eth,执行它的二进制会致使不能找到以太坊共享库引发的连接错误。为纠正这个问题,须要将包含以太坊共享库的文件添加到LD_LIBRARY_PATH环境变量:
为Debian安装依赖
Debian Jessie (8.5)
警告:GUI应用没有在Debian上尝试过。因此,不用GUI应用建立要使用:cmake .. -DGUI=0
步骤:
确保你安装的是cmake version 3.5.2。若是apt-get安装了一个旧版本,须要按照这个连接里的指示,把它从源编译。
要安装cryptopp,颇有必要从建立:
测试安装:
验证结果,再进行一个测试:
验证成功?继续:
CryptoPP安装完成!
如今从源安装LLVM创建:
回到apt-get:
从源安装json-rpc-cpp创建:
在命令行创建 只有在你安装完依赖之后(文件的剩余部分!)
为Windows创建
咱们只支持64位架构而且只适用于如下Windows版本:
经过从源创建和禁用VMJIT及其余特征,也可以让客户端适用于32位Windows。咱们可能会接受拉取请求来增长这样的支持,但不会投入任什么时候间来专门开发支持Windows32位架构。
首要之事 你须要安装下面的依赖
软件备注 Git for Windows从Github检索源的命令行工具CMake交叉平台建构文件生成器Visual Studio 2015C++编译器和dev环境
获取源 经过执行下面命令来克隆包含全部源代码的git资源库:
获取外部依赖 执行CMake脚本,下载并打开创建项目所需的先建的外部二进制:
通用Visual Studio项目文件 而后执行下列指令,它会用CMake生成Visual Studio解决方案文件:
这会致使在创建目录中建立cpp-ethereum.sln。
双击文件会启动Visual Studio。咱们建议创建RelWithDebugInfo配置,可是全部其余都有效。
在命令行创建 或者,你能够在命令行创建这个项目,像这样:
为OS X创建
概览 – 龙来了! 咱们不可能避免OS X创建中断,由于Homebrew是 “滚动发布”程式包管理者,这意味着平面会一直移动到咱们下面,除非咱们把全部的外部依赖都添加到Homebrew分接头,或者把它们做为git子模块添加到umbrella项目。Enduser 的结果随着创建项目的时间而变化。昨天创建可能有效,但不能保证你的朋友今天在他们的机器上创建也会有一样的结果。毋庸置疑,这不是个让人高兴的状况。
若是你撞上了OS X创建中断,请浏览Github问题查看你遇到的问题是否已经被报告过。若是是,请在现存的问题下面评论。若是没有看到任何类似的问题,请建立一个新问题,具体描述你的OS X版本,cpp-ethereum 版本,硬件及其余你认为相关的细节。
请经过gist.github.com或类似服务添加verbose日志文件。
cpp-ethereum-development gitter频道是咱们常去的地方,在那里共同合做解决问题。
咱们只支持两个最新的OS X 版本:
cpp-ethereum代码基在旧版本的OS X上不能创建,咱们一贯不支持。 若是你在用旧版本的OS X,咱们推荐你更新到最新版本,不只仅是为了创建cpp-ethereum,也是为了你的安全考虑。
首要之事和外部依赖 确保你有最新版本的xcode安装。这包括Clang C++ 编译器,xcode IDE和其余在OS X上创建C++应用所必须的苹果开发工具。若是你是第一次安装xcode,或是刚刚安装了一个新版本,你须要在进行命令行创建以前接受许可:
若是你想创建图形用户界面应用(AlethZero和Mix),你须要安装XQuartz X11Window系统,由于OS X上的Qt使用那个X11层。
咱们的OS X创建须要你安装Homebrew程式包管理者,以安装外部依赖。
若是你想从头开始,这是卸载Homebre的方法。
使用Homebre安装全部必须的外部依赖
下面是创建图形用户界面应用:
注意1:Qt5步骤在大多数人机器上花费不少小时。这是由于它使用非默认的设置,会致使从源创建。它彷佛使用大约20G临时磁盘空间。小心! 注意2:Qt和Qt5程式包不能在Homebrew共存。若是你已经安装了Qt,你须要在成功创建cpp-ethereum以前卸载它:
克隆资源库 克隆源代码,执行下列命令:
你能够生成Makefile并在命令行上创建,或者生成X代码项目,在IDE创建。
命令行创建 从项目根:
安装你本身的创建 你也能够用一样的Makefile,在你的机器上全局安装你本身的创建:
生成xcode项目 从项目根:
这会生成叫作cpp-ethereum.xcodeproj的Xcode项目文件,你能够用x代码和build/debug/run打开。
为FreeBSD创建 注意-程式包一旦在FreeBSD主要端口中,这个指南应该变得更简单。
手动安装端口 对于一些步骤,你必需要求修正端口目录的根权限。
webthree-umbrella取决于libjson-rpc-cpp.shar,它也不在端口系统中。
首先你要下载shar文件,把它放在“devel”会话下的端口目录,一般是/usr/ports/devel
如今咱们用如下执行脚本:
这会建立libjson-rpc-cpp端口。如今你应该为webthree-umbrella端口作一样的事,咱们应该得到webthree-umbrella文件并在“net-p2p”目录下建立端口。
建立与安装 如今你能够导航到webthree-umbrella目录并安装端口:
为Android创建
咱们如今没有有效的Android创建,尽管它在doublethinkco的路径图中。Android使用Linu内核,可是与ARM Linux交叉创建有不一样的应用程序界面,意味着须要特定的二进制。
ARM Linux发行版使用GLIBC执行库,Android使用bionic。
为iOS创建
咱们如今没有有效的iOS创建,尽管它在doublethinkco的路径图中。iOS是相似UNIX的操做系统,基于Darwin (BSD),使用ARM芯片。这是与ARM Linux交叉创建不一样的应用程序界面,意味着须要特定的二进制。
为Raspberry Pi Model A, B+, Zero, 2和3创建
EthEmbedded 为全部的Raspberry Mi模块保持创建脚本。它们在Raspi-Eth-Install资源库的Github上。也可能为这些平台交叉创建。
为Odroid XU3/XU4创建
EthEmbedded为Odroid模块保持创建脚本。支持更多的Odroid设备在未来是有可能的。它们在OdroidXU3-Eth-Install资源库的Github上。也可能为这些平台交叉创建。
为BeagleBone Black创建
EthEmbedded为BBB-Eth-Install资源库里Github上的BBB保持创建脚本。也可能为这个平台交叉创建。
为WandBoard创建
EthEmbedded为WandBoard-Eth-Install资源库里Github上的WandBoard保持创建脚本。也可能为这个平台交叉创建。
为Linux for ARM (cross builds)创建
doublethinkco保持基于Docker的交叉创建基础设施,它寄宿在cpp-ethereum-cross资源库的Github上。
在写本文档时,这些交叉创建二进制已经成功地使用在如下设备上:
待办的有:
下一篇文章咱们将会介绍《以太坊连载(九):C++客户端的安装与定制(三)》
感谢朝夕团队Azure, Bob参与《Ethereum Homestead Documentation》的翻译和校验。
汪晓明 HPB芯链创始人,巴比特专栏做家。十余年金融大数据、区块链技术开发经验,曾参与建立银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并做为主要做者编写了《区块链开发指南》,在中国区块链社区以ID“蓝莲花”知名。