为什么不再需要设置 GOROOT 呢?推荐读两篇英文文章,我意译了下,将它们放在了一篇里。
第一篇是关于 Go 1.10 之前,怎么设置 GOROOT,发表与 2013 年。第二篇是从 Go 1.10 开始,如何处理 GOROOT,时间是 2018 年,Go 源码提交日志。这篇非常短小。
读完后,你会发现,大多数情况下,我们都不用手动设置 GOROOT 了。
第一篇
一篇小短文,解释了为什么在编译和使用 Go 时,不需要设置 GOROOT。
概要性介绍
一般来说,在 Go 1.0 之后,编译和使用 GO 不再需要设置 GOROOT。事实上,如果你的电脑上存在多个版本的 Go 语言环境,设置 GOROOT 可能产生一些问题。
GOPATH 仍然需要设置。
从 Go 1.0 开始,GOPATH 就被强烈推荐。随着 Go 1.1 的发布,GOPATH 已经是强制性的了。
为什么不再要设置 GOROOT?
谈些 Go 环境变量的历史吧!
Go 的资深老前辈们可能还记得,曾经的 Go 不仅要设置 GOROOT,还需要设置 GOOS 和 GOARCH。之所以要设置 GOROOT,是因为 Make 在编译构建的时候,引入了 GOROOT 中的内容,要提前设置 GOROOT 作为了它们的基本路径。
随着 go tool 的引入,Go 1.0 之前,GOOS 和 GOARCH 已经变成可选了,因为构建脚本已经能自动检测出系统类别和 CPU 架构。在 Go 1.0 的发布后,引入了 cmd/d