打算做一期go內部函數實現原理講解,首先要搭建一套go的編譯環境,大家常見的都是直接使用官方發佈應編譯好的文件,這裏我們使用源碼編譯的方式來搭建go環境。
1、準備版本:
https://studygolang.com/dl 下載所需要的版本。
我使用的是go1.10和go1.4,爲什麼要準備go1.4呢???繼續往下看就明白了。
2、編譯安裝
進入go1.10/src 執行sudo ./all.bash 會報下面錯誤:
ERROR: Cannot find /root/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
這裏提示我們需要先安裝go1.4,這下知道前面爲什麼要準備go1.4版本了吧。
先將go1.4拷貝到機器,然後進入編譯目錄:cd go1.4/src,開始編譯:sudo ./all.bash。編譯期間可能會遇到文件權限問題,一一解決掉。
go1.4編譯成功後:將go1.4下面的文件拷貝到上面提示的默認路徑下:cp -r go1.4/* /root/go1.4/
這裏需要設置GOROOT環境變量爲go1.4的源碼地址。
然後進入go1.10進行編譯安裝:cd go1.10/src,開始編譯:sudo ./all.bash
編譯期間會遇到各種權限問題和測試代碼不過,一一解決掉,最後編譯成功:
Go version is "go1.10", ignoring -next /usr/local/go/api/next.txt
ALL TESTS PASSED
---
Installed Go for linux/amd64 in /usr/local/go
Installed commands in /usr/local/go/bin
*** You need to add /usr/local/go/bin to your PATH.
按照提示將bin設置到PATH環境變量中,最後在配置上GOPATH。
爲了保險起見還是查一下版本號確定是我們想要的版本:go version
# go version
go version go1.10 linux/amd64
結束。