Golang环境搭建Win10
Golang环境搭建(Win10)
一、前言
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
话不多抄,让我们开始按步骤一步步进行即可完成开发环境的搭建工作;本文基于go1.18.10版本进行搭建,目前看与后面版本的搭建差异不大。
二、Golang下载
下载地址:All releases - The Go Programming Language
版本选择:go1.18.10.windows-amd64.zip(视情况而定,通常windows电脑,64位系统,都要选择这个amd64版本,除非是arm的)
完成下载后,解压,这里我选择的某个盘的根路径,方便查找:D:\go
三、配置环境变量
3.1、配置GOROOT
这里我的电脑是win10,记录一下我的操作:【我的电脑】属性---高级系统设置---环境变量,找到环境变量后开始进行配置;
第一步先配置GOROOT
,新建变量GOROOT
,变量值为即我们下载golang压缩包后解压缩的地址;建立完成后我们要在PATH加上bin的地址:%GOROOT%\bin
完成上述配置后,我们可以cmd
窗xian口命令下进行操作了,查看一下我们的go版本:go version
确认正确后,我们继续往下配置。
3.2、配置GOPATH
新建变量:GOPATH
;变量值:D:\go_work
;说明:这个目录主要用于存放源代码,依赖包等内容,因此这文件夹路径下还要有src(源代码)、pkg(依赖包)、bin(可执行文件)三个文件夹用于存放不同的内容;
3.3、配置GOPROXY代理
默认情况下GOPROXY
代理地址为【GOPROXY=https://proxy.golang.org,direct】但是这个地址在下载一些外部依赖包时容易超时或者报错,因此选择更改为国内镜像地址。
命令:go env -w GOPROXY=https://goproxy.cn,direct
修改后,在下载go
的外部依赖包时,笔者还遇到了一个问题就是下载超时的情况,如下图,后面查看其它贴子了解到可能和GOSUMDB
有关,GOSUMDB
的全称为 Go CheckSum Database
,用来下载的包的安全性校验问题。包的安全性在使用 GoProxy
之后更容易出现,比如我们引用了一个不安全的 GoProxy
之后然后下载了一个不安全的包,这个时候就出现了安全性问题。对于这种情况,可以通过 GOSUMDB
来对包的哈希值进行校验。该方法仅供参考,如果需要关掉:
命令:go env -w GOSUMDB=off
以上我的配置就已经完成了,暂时可以进行一些简单的测试开发工作,后面如果再遇到新的问题,我会在这里再同步更新避坑情况说明。
下面附上一个go env各项参数的简要说明:
python
set GO111MODULE=on //是否以Go modules的模式运行项目 auto,on,off
set GOARCH=amd64 //目标可执行程序操作系统构架 包括 386,amd64,arm
set GOBIN= //项目的第三方可执行文件目录
set GOCACHE= //项目的缓存目录
set GOENV= //项目的env文件目录
set GOEXE=.exe //项目编译之后的可执行文件后缀名
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows //什么平台下面运行
set GOINSECURE=
set GOMODCACHE= //go mod 的缓存地址
set GONOPROXY= //私有库
set GONOSUMDB= //加载源代码不需要验证的库
set GOOS=windows //目标可执行程序运行操作系统,支持darwin,freebsd,linux,windows
set GOPATH=C:\Users\Ch\go //go项目的目录
set GOPRIVATE= //私有的项目依赖地址
set GOPROXY= //公共的项目依赖地址
set GOROOT=C:\Program Files\Go //go的安装目录
set GOSUMDB=sum.golang.org //
set GOTMPDIR= //go的临时文件目录
set GOTOOLDIR= //go的工具包目录
set GOVCS= //指定了golang用什么版本控制工具下载源代码
set GOVERSION=go1.16.3 //使用go的版本号
set GCCGO=gccgo //golang自带的编辑器目录