当我们说 Go 的环境变量的时候意味着什么

2018-12-12  本文已影响67人  码农甲

一. 理解 Go 的环境变量

当我们安装好 go 之后我们输入  go env,就可以查看go的环境变量,大部分都是默认

caoshuaideMacBook-Pro3:~ caoshuai$ go env

GOARCH="amd64"

GOBIN="/Users/caoshuai/go/bin"

GOCACHE="/Users/caoshuai/Library/Caches/go-build"

GOEXE=""

GOFLAGS=""

GOHOSTARCH="amd64"

GOHOSTOS="darwin"

GOOS="darwin"

GOPATH="/Users/caoshuai/go"

GOPROXY=""

GORACE=""

GOROOT="/usr/local/Cellar/go/1.11/libexec"

GOTMPDIR=""

GOTOOLDIR="/usr/local/Cellar/go/1.11/libexec/pkg/tool/darwin_amd64"

GCCGO="gccgo"

CC="clang"

CXX="clang++"

CGO_ENABLED="1"

GOMOD=""

CGO_CFLAGS="-g -O2"

CGO_CPPFLAGS=""

CGO_CXXFLAGS="-g -O2"

CGO_FFLAGS="-g -O2"

CGO_LDFLAGS="-g -O2"

PKG_CONFIG="pkg-config"

GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/6r/q12gwn794jv9dn3x8kywcp1c0000gn/T/go-build786818582=/tmp/go-build -gno-record-gcc-switches -fno-common"

1. GOROOT

该环境变量的值为 Go 语言的当前安装目录。

2. GOPATH

该环境变量的值为 Go 语言的工作区的集合(意味着可以有很多个)。工作区类似于工作目录。每个不同的目录之间用:分隔。

工作区是放置 Go 源码文件的目录。一般情况下,Go 源码文件都需要存放到工作区中。

工作区一般会包含3个子文件夹,自己手动新建以下三个目录:src 目录,pkg 目录,bin 目录。

bin 目录里面存放的都是通过 go install 命令安装后,由 Go 命令源码文件生成的可执行文件( 在 Mac 平台下是 Unix executable 文件,在 Windows 平台下是 exe 文件)。

注意:有两种情况下,bin 目录会变得没有意义。

当设置了有效的 GOBIN 环境变量以后,bin 目录就变得没有意义。

如果 GOPATH 里面包含多个工作区路径的时候,必须设置 GOBIN 环境变量,否则就无法安装 Go 程序的可执行文件。

pkg 目录是用来存放通过 go install 命令安装后的代码包的归档文件(.a 文件)。归档文件的名字就是代码包的名字。所有归档文件都会被存放到该目录下的平台相关目录中,即在 $GOPATH/pkg/$GOOS_$GOARCH 中,同样以代码包为组织形式。

这里有两个隐藏的环境变量,GOOS 和 GOARCH。这两个环境变量是不用我们设置的,系统就默认的。GOOS 是 Go 所在的操作系统类型,GOARCH 是 Go 所在的计算架构。平台相关目录是以

$GOOS_$GOARCH 命名的,Mac 平台上这个目录名就是 darwin_amd64。

src 目录是以代码包的形式组织并保存 Go 源码文件的。每个代码包都和 src 目录下的文件夹一一对应。每个子目录都是一个代码包。

pkg 目录是用来存放通过 go install 命令安装后的代码包的归档文件(.a 文件)。归档文件的名字就是代码包的名字。所有归档文件都会被存放到该目录下的平台相关目录中,即在 $GOPATH/pkg/$GOOS_$GOARCH 中,同样以代码包为组织形式。

这里有两个隐藏的环境变量,GOOS 和 GOARCH。这两个环境变量是不用我们设置的,系统就默认的。GOOS 是 Go 所在的操作系统类型,GOARCH 是 Go 所在的计算架构。平台相关目录是以

$GOOS_$GOARCH 命名的,Mac 平台上这个目录名就是 darwin_amd64。

3.GOBIN

该环境变量的值为 Go 程序的可执行文件的目录。

4.PATH

为了方便使用 Go 语言命令和 Go 程序的可执行文件,需要添加其值。追加的操作还是用:分隔。

export PATH=$PATH:$GOBIN

上一篇下一篇

猜你喜欢

热点阅读