下载go,并且安装
下载地址: https://golang.google.cn/dl/
Windows选择.msi
安装包下载即可,也可以自己选择其他安装形式。
一路默认安装。默认安装在C盘,也可以修改安装路径。
目录
Go安装目录(GOROOT)的文件夹结构简单介绍如下所示:
/api
:每个版本api变更差异
/bin
:go源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)等
/doc
:英文版的Go文档
/lib
:包含项目所引用、依赖的一些库文件
/misc
:包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例,杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等
/pkg
:包含Windows 平台编译好的中间文件
/src
:包含源代码构建脚本和标准库的包的完整源代码
/test
:测试用例存放处
测试
查看版本
1 2 |
> go version go version go1.17.6 windows/amd64 |
查看go变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
> go env set GO111MODULE= set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\vivi\AppData\Local\go-build set GOENV=C:\Users\vivi\AppData\Roaming\go\env set GOEXE=.exe set GOEXPERIMENT= set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=C:\Users\vivi\go\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=C:\Users\vivi\go set GOPRIVATE= set GOPROXY=https://proxy.golang.org,direct set GOROOT=D:\Program Files\Go set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLDIR=D:\Program Files\Go\pkg\tool\windows_amd64 set GOVCS= set GOVERSION=go1.17.6 set GCCGO=gccgo set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD=NUL set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\vivi\AppData\Local\Temp\go-build4264056549=/tmp/go-build -gno-record-gcc-switches |
设置环境变量
GOPATH
GOPATH下有三个文件夹
bin
:用于存放编译后的生成的可执行文件
pkg
:用于存放编译后生成的归档文件
src
:用于存放源码文件
在进行Go语言开发的时候,我们的代码总是会保存在$GOPATH/src
目录下。
在工程经过go build、go install或go get等指令后,会将下载的第三方包源代码文件放在$GOPATH/src
目录下, 产生的二进制可执行文件放在 $GOPATH/bin
目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg
下。
如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src
目录的源代码即可。bin 和 pkg 目录的内容无需版本控制。
GOPROXY
本机的默认GOPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.io或https://goproxy.cn。
1 |
go env -w GOPROXY=https://goproxy.cn,direct |
GO111MODULE
GO111MODULE环境变量主要是用来开启或关闭模块支持的。
它有三个可选值:off、on、auto,默认值是 auto。
GO111MODULE=off
:无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
GO111MODULE=on
:模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
GO111MODULE=auto
:在 $GOPATH/src
外面且根目录有 go.mod 文件时,开启模块支持。
在使用模块的时候,GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/src/mod
中,也会把 go install 的结果放在 $GOPATH/bin
中。
从 Go 1.16版本开始,默认启用modules,这在1.15的时候已经预告过了。现在GO111MODULE的默认值为on。在Go 1.17版本中这个环境变量将会被删除。
1 |
go env -w GO111MODULE=on |