当前位置:网站首页>GO开发环境配置
GO开发环境配置
2022-08-02 00:19:00 【m0_67401499】
要开始go语言的学习,首先要配置好go的开发环境。windows+vscode2019插件
第一步:下载sdk
可以去golang中国下载
根据自己的系统选择对应的下载 我的是选择最后一个
下载好后 安装在一个较简单的目录下(好像不能有中文) 按照提示一路点击即可
安装完成后打开命令行cmd 进入到安装目录下的bin目录 输入以下指令
go version
当出现版本号说明安装成功:
第二步:配置环境变量
打开我的电脑找到属性里面的环境变量配置
或者在设置里直接搜索环境变量
GOROOT为下载的go包目录位置 里面存放着go源码及API
新建GOROOT
GOPATH为工作目录 存放着自己写的go代码
当不使用Go mod管理时依赖包(如Google/grpc)也需加入到GOPATH管理(;附加也可)
不使用go mod 管理的话会默认去GOPATH的src下找
新建配置GOPATH(用户变量和系统变量都有)
PATH为go的可执行文件目录 即GOROOT的bin目录 例如go env go build fmt
新建配置PATH(系统变量)
配置好后打开cmd输入查看环境变量
go env
当GOPATH变成配置的环境变量
测试是否配置成功(配置好要重新打开cmd)
在其他目录(根目录)下输入go version和go env 可以看到对应的输出代表配置成功
第三步:vscode配置
在vscode中下载go的扩展
VsCode Go插件依赖的工具
接下来 安装Go插件所依赖的go tools
按ctrl+shift+p 调出命令面板,输入go install tools 选Go: Install/Update Tools
如下:
点击后我直接全选全部安装
如果安装失败尝试替换代理
go env -w GOPROXY=https://goproxy.cn
安装完成后 已经有代码提示及自动导包
环境测试
一:不使用go mod管理
先创建go文件存放路径 我的路径如下
D:goprojectsrcgocodeproject01main
使用vscode打开文件夹
在main下新建一个文件hello.go (go语言有包的概念 好像是每个文件都要属于一个包)
打出经典代码
package main
import "fmt"
func main() {
fmt.Println("hello,world!")
}
这里如果 GOROOT(源码) 和GOPATH(工作目录) PATH三个环境变量没有问题可以正常编译通过
二:使用go mod
go mod是go高版本之后出现的包管理工具,要么使用默认包管理,要么使用go mod,不能同时使用
当使用了go mod时下载的依赖在GOROOT的pkg的mod下管理
使用 go env 命令 查看
GO111MODULE=off 是没有开启
1:开启go modules功能,命令行输入
go env -w GO111MODULE=on
初始化mod管理模块(进入到项目目录下 xxx为项目名称)
go mod init xxx //xxx代表当前文件夹名
go mod相关
//初始化模块:
Go mod init <项目模块名称>
//依赖关系处理,根据go.mod文件
Go mod tidy
//将依赖包复制到项目的vendor目录
Go mod vendor
//显示依赖关系
Go list -m all
//显示详细依赖关系
Go list -m -json all
//下载依赖
Go mod download [[email protected]]
可以发现出现mod
使用go env查看环境查看是否设置成功
然后开始编译输出
很好,hello world 成功输出,go语言学习成功,不对,环境变量配置成功。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- ICML 2022 | GraphFM:通过特征Momentum提升大规模GNN的训练
- Identify memory functions memset, memcmp, memmove, and memcpy
- Pytorch seq2seq 模型架构实现英译法任务
- BGP 第一次实验
- C语言函数详解(1)【库函数与自定义函数】
- 请教一下本网站左下角的动漫人物是怎么做的?
- 实现删除-一个字符串中的指定字母,如:字符串“abcd”,删除其中的”a”字母,剩余”bcd”,也可以传递多个需要删除的字符,传递”ab”也可以做到删除”ab”,剩余”cd”。
- Day.js 常用方法
- 期货开户调整交易所保证金标准
- iframe使用
猜你喜欢
Knowing the inorder traversal of the array and the preorder traversal of the array, return the postorder history array
期货公司开户实力经纪业务的规模
nodeJs--mime module
这 4 款电脑记事本软件,得试试
flowable工作流所有业务概念
bgp aggregation reflector federation experiment
测试点等同于测试用例吗
【CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!)(A~D)】
Automatic conversion of Oracle-style implicit joins to ANSI JOINs using jOOQ
什么是低代码(Low-Code)?低代码适用于哪些场景?
随机推荐
技术分享 | 接口测试中如何使用Json 来进行数据交互 ?
unity2D横版游戏教程5-UI
冒泡排序函数封装
哪里有期货开户的正规途径?
An Enhanced Model for Attack Detection of Industrial Cyber-Physical Systems
tf.keras.callbacks.EarlyStopping()
Routing strategy
go笔记记录——channel
DFS详解
632. Minimum interval
DCM 中间件家族迎来新成员
MLX90640 红外热成像仪测温传感器模块开发笔记(十) 成果展示-红眼睛相机
第 45 届ICPC亚洲区域赛(上海)G-Fibonacci
渗透测试与攻防对抗——渗透测试基础
Redis和MySQL数据一致性问题,有没有好的解决方案?
Redis - message publish and subscribe
如何期货开户和选择期货公司?
Day11 Shell scripting basics
Realize deletion - a specified letter in a string, such as: the string "abcd", delete the "a" letter in it, the remaining "bcd", you can also pass multiple characters to be deleted, and pass "ab" can
nodeJs--mime模块