当前位置:网站首页>vscode插件设置——Golang开发环境配置
vscode插件设置——Golang开发环境配置
2022-08-03 23:31:00 【甜点cc】
*适用读者: Go初学者, 到这里, 你应该是处于已经完成了 go 的安装之后, 准备写个 "Hello Gopher" 之前。 本篇力求给初学者-未来的Gopher 们 一个正确的开箱姿势。 若有不当之处请指正, 蟹蟹
*
1、vscode安装Go插件
2、vscode自动提示需要安装插件,点击install all
Tools environment: GOPATH=D:\go-project
Installing 11 tools at D:\go-project\bin in module mode.
gopkgs
go-outline
gotests
gomodifytags
impl
goplay
dlv
dlv-dap
staticcheck
gopls
goimports
安装失败,被墙
3、另一种手动安装插件的方式
vscode
1. 快捷键: ctrl+shift+p
2. 输入: Go install
3. 选择Install/Update Tools
勾选安装所有插件
这样安装跟点击vscode提示安装 install all是一样的,不会成功,失败原因大家都知道的。
connection failed because connected host has failed to respond.
*推荐两个方法:
*
开国外vpn或者代理,让它安装成功(本篇不讲这个)
设置go proxy,然后去安装vscode插件
下面让我们来看一下通过设置代理的方式解决插件安装失败的问题吧
4、设置 go proxy 代理
4.1、查看GO环境变量设置
go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\xiao\AppData\Local\go-build
set GOENV=C:\Users\xiao\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOMODCACHE=D:\go-project\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\go-project
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=D:\apptools\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\apptools\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.2
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\xiao\AppData\Local\Temp\go-build12972845=/tmp/go-build -gno-record-gcc-switches
七牛云代理 https://goproxy.cn/
4.2、插话:GO111MODULE 的由来
*简单来说就是 影响到 Go项目 本地存放的位置(不受GOPATH的影响),后面会用到,这里不展开介绍,初学者先了解一下即可。
*
如其名字所暗示,GO111MODULE 是 Go 1.11 引入的新版模块管理方式。之前的版本中,安装的三方库比如 go-cmp ,要求模块存在于 GOPATH 下,否则编译时会找不到。
GO111MODULE 是一个环境变量,可以在使用 go 更改 Go 导入包的方式时进行设置。
4.3、设置七牛云代理
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
设置完之后,查看
go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\xiao\AppData\Local\go-build
set GOENV=C:\Users\xiao\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\go-project\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\go-project
set GOPRIVATE=
set GOPROXY=https://goproxy.cn
set GOROOT=D:\apptools\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\apptools\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.2
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\xiao\AppData\Local\Temp\go-build3442023997=/tmp/go-build -gno-record-gcc-switches
「清空缓存」
go clean --modcache
5、重新安装vscode插件
重新打开vscode, 不打开工作目录,直接在vscode的窗口里安装插件
ctrl+shift+p
输入: Go install
选择Install/Update Tools
全选安装插件,如图安装成功了
6、go path配置
gopath直接在环境变量中设置就可以了,不用单独在vscode中设置
设置 Tools Gopath (设置全局工具安装目录,目的是更「方便、清晰」的管理工具)
vscode中可以为在vscode中安装的go tools设置一个单独的目录具体设置项为 Tools Gopath,使用ctrl+, 然后输入tools gopath ,在下方填你想独立存放刚才第二步安装的工具的存放的地方了。
settings.json文件里新增以下配置, 设置go tools的全局安装目录
"go.toolsGopath": "D:\go-global-tools"
*Location to install the Go tools that the extension depends on if you don't want them in your GOPATH. When specified as a workspace setting, the setting is used only when the workspace is marked trusted with "Go: Toggle Workspace Trust Flag".
*
7、go mod相关
如果你现在使用了go mod模式,就不用纠结配置几个gopath的问题,只配置一个就好了。vscode的go mod支持需要启用language server按ctrl+, (注意是ctrl + 英文状态的逗号)调出配置界面,输入go.lang
把 Use Language Server设置选中状态即开启了gopls了,这时vscode就会很好的支持go mod类型的项目了。
8、VsCode Go插件在Go项目中的正确配置
8.1、如何运行
如果是一个单独的main.go这种,现在你的vscode应该可以工作了,但是在工程里面可能不行。
工程一般有2种 结构:一种是有src目录,一种没有。
有src目录的就是 go 代码放在工程目录下面的src目录下面,这就可能会导致一些项目不能正确加载,比如非go mod项目。
这时候在工程目录下面建一个.vscode目录,然后在.vscode目录下面创建.settings.json文件
在里面设置gopath
如果你的main包不在src目录下面,则需要设置cwd,也就是工作时切换到的目录
这时候可以选中你的main.go,按ctrl+F5,start Without Debuging,开始运行啦
「注意:」 说一点,如果是go mod的工程,这个gopath就不需要配置了
9、如何Debug和运行
vscode里面正常的工程项目main包一般在cmd下面,不同的项目可能不同,但一定有一个main包。
9.1、创建 launch.json (运行项目)
选中你的main.go,按F5,这时就会弹出一个需要创建「launch.json」,点create a launch.json,直接默认的选中go,就会在.vscode目录下生成一个launch.json文件
这时候一般的程序都可以开始调试了,但是如果你的main.go启动是需要一些配置文件的话,需要配置一个cwd的属性
cwd - current working directory for finding dependencies and other files
9.2、配置cwd属性
launch.json 中 加上cwd的属性如下
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"cwd": "${workspaceFolder}",
"env": {},
"args": []
}
]
}
到此,设置好断点,选中入口文件,按F5就可以进入debug了,然后f10单步之类的快捷键,可以看界面上的提示,自己点几下就知道好玩了
9.3 Debug运行效果
最后
任何语言的环境配置都是非常重要的一步,初学者需要有足够的耐心尝试自己配置,加油,你是最棒的
关注我,你会发现一个踏实努力的宝藏前端,让我们一起学习,共同成长吧。
喜欢的小伙伴记得点赞关注收藏哟,回看不迷路
边栏推荐
- Super perfect version of the layout have shortcut, background replacement (solve the problem of opencv Chinese path)
- rsync basic usage
- utils timer
- Quickly build a website with static files
- Jar a key generation document database
- Click the icon in Canvas App to generate PDF and save it to Dataverse
- 密码学基础以及完整加密通讯过程解析
- 软测人每个阶段的薪资待遇,快来康康你能拿多少?
- 使用tf.image.resize() 和tf.image.resize_with_pad()调整图像大小
- Creo 9.0在草图环境中创建坐标系
猜你喜欢
智能座舱的「交互设计」大战
Why Flutter Flutter of tutorials is the best choice for business?
CAS: 178744-28-0, mPEG-DSPE, DSPE-mPEG, methoxy-polyethylene glycol-phosphatidylethanolamine supply
Creo 9.0二维草图的诊断:重叠几何
全球首款量产,获定点最多!这家AVP Tier1如何实现领跑?
Live Preview | Build Business Intelligence, Quickly Embrace Financial Digital Transformation
响应式织梦模板塑身瑜伽类网站
Deep integration of OPC UA and IEC61499 (1)
冰河又一MySQL力作出版(文末送书)!!
Jar a key generation document database
随机推荐
JS get parameter value of URL hyperlink
举一个 web worker 的例子
With the rise of concepts such as metaverse and web3.0, many digital forms such as digital people and digital scenes have begun to appear.
Binary search tree to solve the fallen leaves problem
BPF 可移植性和 CO-RE(一次编译,到处运行)
Super perfect version of the layout have shortcut, background replacement (solve the problem of opencv Chinese path)
CAS:178744-28-0,mPEG-DSPE,DSPE-mPEG,甲氧基-聚乙二醇-磷脂酰乙醇胺供应
[Paper Reading] TRO 2021: Fail-Safe Motion Planning for Online Verification of Autonomous Vehicles Using Conve
Fluorescein-PEG-CLS,胆固醇-聚乙二醇-荧光素科研试剂
Websocket multi-threaded sending message error TEXT_PARTIAL_WRITING--Use case of spin lock replacing synchronized exclusive lock
V8中的快慢数组(附源码、图文更易理解)
走迷宫 BFS
禾匠编译错误记录
ML's yellowbrick: A case of interpretability (threshold map) for LoR logistic regression model using yellowbrick based on whether Titanic was rescued or not based on the two-class prediction dataset
Live Preview | Build Business Intelligence, Quickly Embrace Financial Digital Transformation
What is memoization and what is it good for?
全球首款量产,获定点最多!这家AVP Tier1如何实现领跑?
libnet
七夕?new一个对象
The longest substring that cannot have repeating characters in a leetcode/substring