0%

golang

golang 环境配置

下载安装 golang

https://golang.google.cn/dl

image-20200117204022567

GO ENV

1
go env #查看环境变量

image-20200117204744130

配置GOPROXY

Go version >= 1.13 可以使用go env -w命令设置

Goproxy.cn中国最可靠的 Go 模块代理。

https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md

1
go env -w GOPROXY=https://goproxy.cn,direct

GO111MODULE环境变量

go module 依赖管理工具

golang提供了一个环境变量GO111MODULE,默认值为auto,如果当前目录里有go.mod文件,就使用go modules,否则使用旧的GOPATH和vendor机制,因为在modules机制下go get只会下载go modules,这一行为会在以后版本中成为默认值,这里我们保持auto即可,如果你想直接使用modules而不需要从GOPATH过度,那么把GO111MODULE设置为on。

go1.11 之前,GOPATH是GO项目必备的环境变量,用来存放Go的开发代码和第三方包代码,代码需要按照一定的目录安排。

$GOPATH目录约定有三个子目录

  • src存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。
  • pkg编译时生成的中间文件(比如:.a)  golang编译包时
  • bin编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录)

go1.11之后,使用go mod依赖管理,不再需要按照$GOPATH约定目录

1
go mod init dzq #初始化go.mod文件
1
go mod tidy #自动更新依赖关系

go 命令

go get

go get会做两件事:

  1. 从远程下载需要用到的包
  2. 执行go install

go install

go install 会生成可执行文件直接放到bin目录下,当然这是有前提的
你编译的是可执行文件,如果是一个普通的包,会被编译生成到pkg目录下该文件是.a结尾

开发工具

goland