Go 的下载和安装,已经有很多文章介绍了,这里不再赘述,详情参见:
Go 的环境变量可以使用 go env
命令查看:
1 | GOARCH="amd64" |
- GOARCH — 支持的处理器架构
- GOBIN — go install 命令安装可执行文件的位置
- GOCACHE
- GOEXE
- GOHOSTARCH
- GOHOSTOS
- GOOS
- GOPATH
- GORACE
- GOROOT — Go 安装目录
- GOTMPDIR
- GOTOOLDIR
- GCCGO
- CC
- CXX
- CGO_ENABLED
- CGO_CFLAGS
- CGO_CPPFLAGS
- CGO_CXXFLAGS
- CGO_FFLAGS
- CGO_LDFLAGS
- PKG_CONFIG
- GOGCCFLAGS
其中有两个变量和日常开发联系最紧密,一个是 GOROOT,一个是 GOPATH,所有变量的具体含义详见 https://golang.org/cmd/go/#hdr-Environment_variables 。
GOROOT
简而言之 GOROOT 就是 Go 的安装目录,如果一台机器上有多个 Go 版本并存就需要注意 GOROOT 的设置,不同的 Go 版本使用不同的目录,对应的 Go 项目正确设置 Go 版本。
GOPATH
GOPATH 是 Go 项目中最重要的一个目录,其决定了使用 Go 命令比如 go install
、go get
要把执行文件和源码放到哪个位置,决定开发 Go 项目依赖包是如何导入的,可以说如果要开发完整的 Go 项目首先要设置的就是 GOPATH,官方详见 https://golang.org/cmd/go/#hdr-GOPATH_environment_variable。
GOPATH 的组成
- src 源码文件目录,包括使用 go get 安装的第三包
- pkg 编译打包之后的 lib,主要是 *.a 文件
- bin 可执行文件,go install 命令会把可执行文件放入该目录
1 | . |
GOPATH 如何设定
GOPATH 的设定并没有严格规范,只要当前环境变量中可以找到正确的 GOPATH 目录即可,可以按照如下规则设定:
每个用户一个 GOPATH
为了开发方便,对于个人开发者来说,可以在当前用环境变量中设置 GOPATH,比如 linux 用户可以修改 .bash_profile
文件设置:
1 | export GOPATH=$HOME/go |
一个项目一个 GOPATH
如果是团队开发,往往会设计多个项目,每个项目的 Go 版本和第三方依赖都有差别,可以使用每个 Go 项目一个GOPATH,这样可以最大程度上降低开发中的包和版本冲突。
注意:GOPATH 可以设置多个值,也就是 GOPATH 允许设置多个目录,这种情况下使用 go get 安装的包默认放在第一个目录。