golang 学习一:安装以及环境配置
Posted 嗨,阿良
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 学习一:安装以及环境配置相关的知识,希望对你有一定的参考价值。
Go下载安装
官网根据操作系统安装即可
环境配置
注:go > 1.13版本的在windows中安装时会自动设置环境变量,不在需要我们自己动手设置,如下图所示。
由于自动设置了环境变量,故在终端可以直接执行 go env
查看 go 环境的配置信息
C:\\Users\\User>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\\Users\\User\\AppData\\Local\\go-build
set GOENV=C:\\Users\\User\\AppData\\Roaming\\go\\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\\Users\\User\\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\\go\\pkg\\tool\\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
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\\User\\AppData\\Local\\Temp\\go-build996279958=/tmp/go-build -gno-record-gcc-switches
Go mod
概念及开启
-
注:go module是 Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具
-
C:\\Users\\User>go env -w GO111MODULE=on # 设置GO111MODULE=on之后就可以使用go module了,以后就没有必要在GOPATH中创建项目了,并且还能够很好的管理项目依赖的第三方包信息。 # 使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。
常用的go mod命令如下:
1. go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
2. go mod edit 编辑go.mod文件,整理依赖
3. go mod graph 打印模块依赖图
4. go mod init 初始化当前文件夹, 创建go.mod文件
5. go mod tidy 增加缺少的module,删除无用的module
6. go mod vendor 将依赖复制到vendor下
7. go mod verify 校验依赖
8. go mod why 解释为什么需要依赖
go get 命令下载安装依赖 (go mod download)
-
在项目中执行go get命令可以下载依赖包,并且还可以指定下载的版本。
- 运行
go get -u
将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号) - 运行
go get -u=patch
将会升级到最新的修订版本 - 运行
go get package@version
将会升级到指定的版本号version
- 运行
-
如果下载所有依赖可以使用go mod download命令。
整理依赖
我们在代码中删除依赖代码后,相关的依赖库并不会在go.mod文件中自动移除。这种情况下我们可以使用 go mod tidy
命令更新 go.mod
中的依赖关系。
使用 go mod edit
格式化
因为我们可以手动修改go.mod文件,所以有些时候需要格式化该文件。Go提供了一下命令:
go mod edit -fmt
添加依赖项
go mod edit -require=golang.org/x/text
移除依赖项
如果只是想修改go.mod文件中的内容,那么可以运行go mod edit -droprequire=package path,比如要在go.mod中移除golang.org/x/text包,可以使用如下命令:
go mod edit -droprequire=golang.org/x/text
关于go mod edit的更多用法可以通过 go help mod edit
查看。
在项目中使用 go mod
既有项目
如果需要对一个已经存在的项目启用go module,可以按照以下步骤操作:
- 在项目目录下执行go mod init,生成一个go.mod文件。
- 执行go get,查找并记录当前项目的依赖,同时生成一个go.sum记录每个依赖库的版本和哈希值。
新项目
对于一个新创建的项目,我们可以在项目文件夹下按照以下步骤操作:
- 执行go mod init 项目名命令,在当前项目文件夹下创建一个go.mod文件。
- 手动编辑go.mod中的require依赖项或执行go get自动发现、维护依赖。
GOPROXY
GOPROXY表示的是go的代理设置,之所以有这个环境变量,是因为go这种语言不像C语言,在C语言中,如果我们想要使用别人的第三方代码,一般有两种途径:
- 将第三方代码源码合并到自己的工程文件中,再合并编译。
- 将第三方代码编译生成的共享库.so或.dll 文件放到工程目录下,然后通过条件编译来使用。
而在使用go语言开发的过程中引入第三方代码的库地址(比如git仓库),然后在编译的时候,IDE会自动的拉取第三方库文件到当前工程。这样做虽然很方便,但是带来了一个问题:网速和限制,因为一些第三方代码库是在国外服务器上的,因为一些限制,我们不能很顺利的使用和下载这些仓库,这样就会导致下载缓慢或者失败,所以这个时候就需要一个代理来实现下载。
Go1.13之后GOPROXY默认值为 https://proxy.golang.org,在国内是无法访问的,所以十分建议大家设置GOPROXY,这里我推荐使用 goproxy.cn。
C:\\Users\\User>go env -w GOPROXY=https://goproxy.cn,direct
VS Code 下载安装配置
以上是关于golang 学习一:安装以及环境配置的主要内容,如果未能解决你的问题,请参考以下文章