windows下编译cpp.ethereum

一、前期准备

开始之前需要预先安装如下依赖软件

  1. Git for Windows
  2. CMake
  3. Visual Studio 2015

我使用的版本是:

Git-2.15.1.2-64-bit

cmake-3.12.0-win64-x64.msi

Visual Studio 2015中文版Version 14.0.25431.01 Update 3

将系统设置成非unicode语言,控制面板-》时钟、语言和区域-》更改位置-》管理-》更改系统区域设置,修改为英语(美国)

 

二、获取源代码

通过如下命令可以把所有源代码从GitHub的仓库中获取到本地:

git clone --recursive https://github.com/ethereum/cpp-ethereum.git
git未配置缓存时,默认缓存大小为1MB,此时就会出现如下错误:
error: RPC failed; result=22, HTTP code = 411

fatal: The remote end hung up unexpectedly

fatal: The remote end hung up unexpectedly

Everything up-to-date
先将缓存重新设置:
git config --global http.postBuffer 524288000
然后再clone项目到本地。再执行 submodule updata –init,保证子模块内容全部下载,发现直接在git上Download ZIP解压后子模块内容缺失,所以要注意。
本次编译使用的是cpp.ethereum v1.4.0rc0
 

三、获取外部依赖项

进入cpp-ethereum,将scripts中的 install_deps.bat拷贝到cpp.ethereum中运行,

该步骤下载了leveldb-1.2.tar.gz

网上有教程说该步骤同时会下载hunter和boost,可能是版本问题,发现脚本中只有download_and_install("leveldb-1.2") 下载安装。

hunter和boost会在下一步Cmake生成visual studio解决方案时才下载并编译安装。

四、生成Visual Studio的工程文件

接下来执行如下命令,通过CMake来生成Visual Studio的工程解决方案文件:

mkdir build
cd build
cmake -G "Visual Studio 14 2015 Win64" ..

这个时间会有点长,受电脑配置及网速影响,我执行了一个小时….

编译后build文件夹下多了以下文件:

打开aleth.sln启动visual studio2015

将aleth项目设置为启动项,调试运行OK:

 

 

另:

在window7系统上执行时,发现boost没有自动编译生成出boost_fiter,导致找不到boost的库,

手动下载boost源码包,使用Cmake进行编译安装,也未生成boost_fiter,将window8下生成的libboost_fiber-mt.lib拷贝到C:\.hunter\_Base\aa1facc\d99e33e\4de1f3d\Install\lib目录,继续Cmake,竟然编译成功~也生成了工程解决方案文件aleth.sln,打开按上述步骤调试运行,却编译报错:

 在https://github.com/ethereum/cpp-ethereum/issues/5152上寻求帮助时,@gumb0 给出提示,他使用的vs2015是Version 14.0.25431.01 Update 3版本的,我查询发现,成功的那个台机器使用的vs2015版本正好的14.0.25431.01 Update 3,而失败的是14.0.23107.0 D14REL,后来验证发现vs2015安装时,必须选择Visual studio 2015更新3和编程语言中Visual C++两个选项,安装好后重新使用Cmake编译生成解决方案文件aleth.sln,成功了!!!打开解决方案文件编译运行也成功!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值