本文介紹在64位的Ubuntu16.04系統上編譯以太坊go語言源碼go-ethereum的過程。git
go-ethereum主要是用go語言寫的,很小一部分使用了C語言,所以編譯go-ethereum源碼須要go語言和C語言編譯器,首先確保機器上有gcc編譯器,而且正確安裝了go語言 (安裝教程),go語言版本推薦用go1.7及以上。github
編譯go-ethereum有兩種方法,一種是使用make工具編譯,另外一種是使用go語言本身的編譯工具編譯。golang
首先下載go-ethereum源碼:bash
$ git clone https://github.com/ethereum/go-ethereum.git $ cd go-ethereum $ git checkout v1.6.0
上面經過git clone
下載源碼,而後經過git checkout
檢出指定版本的代碼,若是想使用其餘版本,在git checkout
中指定相應的版本號便可。工具
接下來用make工具進行編譯:ui
$ make geth
make會執行go-ethereum/build
目錄下的編譯腳本,編譯腳本會調用go語言編譯器進行編譯。等待十幾秒,編譯就完成了,此時會在 go-ethereum/build/bin
中生成geth可執行文件。.net
輸入 geth help
命令,會顯示geth全部的命令和選項:code
$ cd build/bin $ ./geth help
若是熟悉go語言,能夠直接使用go語言的編譯工具編譯。blog
首先在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
命令編譯安裝便可。