[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

前言

       本文主要讲解如何在win10系统下,利用goland来build生成geth.exe可执行文件。

 

正文

golang环境搭建

       具体安装方法就不再赘述,但是以太坊对golang的版本有要求,得1.7及以上,推荐1.9.3.

 

go-ethereum代码下载

       可以直接访问https://github.com/ethereum/go-ethereum下载。下载下来后解压,重命名为go-ethereum。

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

图1 go-ethereum文件下载页面

 

以太坊源码编译

1、创建项目

       用Goland新建一个空的geth项目,目录结构如下图,记住一定要按照如下的目录结构,否则编译会出现很多奇奇怪怪的问题。

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

图2 以太坊源码项目结构

 

(1) 项目名称随便起,我的为geth;

(2) 在src目录下新建个github.com文件夹;

(3) 在github.com文件夹下新建一个ethereum文件夹,再把我们上一步下载下来的go-ethereum放在下面;

(4) 在src下再新建个golang.org文件夹;

 

2、源码编译

设置GoPath:

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

现在我们找到go-ethereum——cmd——geth——main.go文件,打开它:

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

图3 build 以太坊源码

 

在右上角选择Edit Configurations:

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

 

做如下设置:

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

 

然后运行:

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

图4 go-ethereum编译成功运行图示

 

编译成功之后,在bin目录会生成geth.exe文件。

[ETH]以太坊go-ethereum项目源代码本地编译——Windows10

 

遇到的问题

1. cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

需要安装MinGW,并设置环境变量,具体方法如下:

到如下路径下载64位MinGW,解压放到C盘:

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.2/threads-posix/seh/ 

然后再path里面加上C:\mingw64\bin。