直入主题,环境Mac os Mojave 10.14.6
配置环境变量
export GOROOT=$HOME/Development/go export GOPATH=$HOME/Development/path export PATH=$PATH:$HOME/Development/go/bin:/$HOME/Development/path/bin #建议直接设置为go1.4,后续会创建go1.4目录,由于之前编译一直设置的go,走了很多弯路。 export GOROOT_BOOTSTRAP=$HOME/Development/go1.4
编译
git clone https://github.com/golang/go.git cd go/src ./all.bash
报错如下
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
根据github提示执行
#从源代码构建Go1.4 git checkout -b 1.4.3 go1.4.3 cd src ./all.bash #复制~/go到$GOROOT_BOOTSTRAP(~/go1.4默认情况下)` cp ~/go ~/go1.4 -rf #从源代码构建Go1.6 cd ~/go git clean -dfx git checkout -b 1.6 go1.6 cd src ./all.bash
报错如下
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
安装
xcode-select --install
再次编译
./all.bash
报错如下
Building Go cmd/dist using /Users/zhangzhichao/Development/go1.4. Building Go toolchain1 using /Users/zhangzhichao/Development/go1.4. Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1. /Users/zhangzhichao/Development/go/src/runtime/zruntime_defs_darwin_amd64.go:7:7: _Gidle redeclared in this block previous declaration at /Users/zhangzhichao/Development/go/src/runtime/runtime2.go:35:11 /Users/zhangzhichao/Development/go/src/runtime/zruntime_defs_darwin_amd64.go:8:7: _Grunnable redeclared in this block previous declaration at /Users/zhangzhichao/Development/go/src/runtime/runtime2.go:39:2 /Users/zhangzhichao/Development/go/src/runtime/zruntime_defs_darwin_amd64.go:9:7: _Grunning redeclared in this block previous declaration at /Users/zhangzhichao/Development/go/src/runtime/runtime2.go:44:2 /Users/zhangzhichao/Development/go/src/runtime/zruntime_defs_darwin_amd64.go:10:7: _Gsyscall redeclared in this block previous declaration at /Users/zhangzhichao/Development/go/src/runtime/runtime2.go:49:2 /Users/zhangzhichao/Development/go/src/runtime/zruntime_defs_darwin_amd64.go:11:7: _Gwaiting redeclared in this block
再次编译
git clean -df
最终编译完成
##### ../misc/cgo/testcshared SKIP - short mode and $GO_BUILDER_NAME not set ##### ../misc/cgo/testplugin ok misc/cgo/testplugin 0.008s ##### ../misc/cgo/errors PASS ##### ../test/bench/go1 ##### ../test ##### API check Go version is "go1.13rc1", ignoring -next /Users/zhangzhichao/Development/go/api/next.txt ALL TESTS PASSED --- Installed Go for darwin/amd64 in /Users/zhangzhichao/Development/go Installed commands in /Users/zhangzhichao/Development/go/bin
go新版本会依赖go1.4版本构建,走了好多弯路,之前不停的切换分支修改环境变量,后来突然想通,需要同时拥有两个版本。
有疑问加站长微信联系(非本文作者)
