go-ethereum源码编译

葛雪松
2023-12-01

本文介绍在64位的Ubuntu16.04系统上编译以太坊go语言源码go-ethereum的过程。

go-ethereum主要是用go语言写的,很小一部分使用了C语言,因此编译go-ethereum源码需要go语言和C语言编译器,首先确保机器上有gcc编译器,并且正确安装了go语言 (安装教程),go语言版本推荐用go1.7及以上。

编译go-ethereum有两种方法,一种是使用make工具编译,另一种是使用go语言自己的编译工具编译。

使用make编译

首先下载go-ethereum源码:

$ git clone https://github.com/ethereum/go-ethereum.git
$ cd go-ethereum
$ git checkout v1.6.0

上面通过git clone下载源码,然后通过git checkout检出指定版本的代码,如果想使用其他版本,在git checkout中指定相应的版本号即可。

接下来用make工具进行编译:

$ make geth

make会执行go-ethereum/build目录下的编译脚本,编译脚本会调用go语言编译器进行编译。等待十几秒,编译就完成了,此时会在 go-ethereum/build/bin 中生成geth可执行文件。

输入 geth help 命令,会显示geth所有的命令和选项:

$ cd build/bin
$ ./geth help

使用go语言编译工具编译

如果熟悉go语言,可以直接使用go语言的编译工具编译。

首先在GOPATH/src下创建github.com/ethereum目录:

$ mkdir -p $GOPATH/src/github.com/ethereum

然后进入上面创建的目录,下载go-ethereum项目源码:

$ cd $GOPATH/src/github.com/ethereum
$ git clone https://github.com/ethereum/go-ethereum.git
$ cd go-ethereum
$ git checkout v1.6.0

下载完成后,通过以下命令编译:

$ go install -v github.com/ethereum/go-ethereum/cmd/geth

go install命令会编译指定的源码,并在GOPATH/bin目录下生成geth可执行文件。

编译完成后,输入 geth help 命令,会显示geth所有的命令和选项:

$ cd $GOPATH/bin
$ ./geth help

:如果下载的是1.5.x版本的代码,编译出错的话,可能还要到golang中国下载golang.org.x.net.tar.gz,并将其解压到GOPATH/src中。解压之后的目录结构应该是这样的:

GOPATH/src
├── github.com
│   └── ethereum
│       └── go-ethereum
└── golang.org
    └── x
        └── net

之后再通过上面的go install命令编译安装即可。

转载于:https://my.oschina.net/u/2349981/blog/899260

 类似资料: