GOPATH, GOROOT, GOBIN

GOPATH

如果您来自其他编程语言,您可能以前是可以把源代码放在文件系统中的任意位置。
而Go tools会预期您的源代码结构是遵循一定的布局。
GOPATH是您工作空间的根目录,它包含如下几个文件夹:
  • src — 放源代码的位置:.go, .c, .g, .s
  • pkg — 放已编译的包的位置:.a 文件
  • bin — 放Go构建的可执行文件
PATH环境变量类似,GOPATH也的值也是一系列的用冒号:分割的目录路径(Windows上是用分号;分割的)。
Go会在GOPATH目录去查找需要的包(packages)或库(libraries)。
go get工具下载包会被放到GOPATH中的第一个目录中。
自从Go v1.8起,如果您没主动设置GOPATH环境变量,它的默认值在Linux/Unix上为$HOME/go,在Windows上为%USERPROFILE%/go
有些工具会假定GOPATH只是单个目录。

GOBIN

它是go installgo get会放构建main包之后生成的二进制文件的地方。一般的,会把GOBIN添加到环境变量PATH中,这样方直接执行。

GOROOT

这是您安装Go编译器的地方。它也是查找标准库的地方。
由于Go将构建路径嵌入在工具链中,因此很少需要设置此变量。如果安装目录跟构建目录不同(或构建时指定的目录),则需要设置GOROOT
执行go env命令查看Go环境变量的完整列表。