目錄linux
golang編譯其實很簡單,下載一份最新的源代碼後,進入src目錄運行all.bash便可,
可是你可能會遇到下面問題,這是由於如今golang都是用go語言編譯的了,因此你的系統必須先安裝好 >= go1.4 的版本.git
./all.bash Building Go cmd/dist using /home/ailumiyana/go1.4. ERROR: Cannot find /home/ailumiyana/go1.4/bin/go. Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. ailumiyana@sola:~/open_src/go/src$ export GOROOT_BOOTSTRAP=/usr/local/go1.4
一、先上github上下載一份源代碼https://github.com/golang/gogithub
而後進入目錄,查看所有分支。
能夠看到當前最新的release分支是go1.12.
golang
二、切換到go1.4的分支
bash
三、進入source目錄,運行腳本開始編譯ui
~/open_src/go/src$ ./all.bash
四、以後能夠進bin目錄運行go查看版本 是否是1.4,來確認是否編譯成功。this
一、回到go源碼目錄咱們切換到go1.12分支.
如今就直接進入src編譯是不行的,咱們須要先設置go1.4的路徑給GOROOT_BOOTSTRAP。code
./all.bash Building Go cmd/dist using /home/ailumiyana/go1.4. ERROR: Cannot find /home/ailumiyana/go1.4/bin/go. Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. ailumiyana@sola:~/open_src/go/src$ export GOROOT_BOOTSTRAP=/usr/local/go1.4
export GOROOT_BOOTSTRAP=/usr/local/go1.4
blog
二、再次進入src目錄編譯
你可能會遇到 _Gidle redeclared in this block
錯誤
cmd
這是由於咱們的上次編譯的中間文件沒有清理的緣由.
git clean -df
三、最後編譯應該就沒問題了,
go的交叉編譯也比較簡便,go env
能夠看到當前的環境變量配置,
GOOS、 GOARCH
分別表示目標機系統及處理器體系結構.
GOOS=linux GOARCH=amd64 go build hello.go
這些應該是可選搭配 :