Go:VScode安装go插件踩坑记录

一、由来

   韩顺平老师❤️的Go语言核心编程中第p389视频中提到了VScode安装插件,其Go版本为1.9.2(由p12的25分42秒可知),但是由于由于国内网络的原因,对于一些golang的开发包下载不成功,且并不能按照视频所述方法流畅安装插件。因此,本文特此记录一下踩过的坑。此外,以下文中的GO版本为1.15.6


二、 正文

Q1:Win10设置GOPATH 后不生效

   浅细色字体为流水账 😃
   打开VScode按默认提示安装插件,虽然过程爽歪歪,但结果就是一个都没装上 😏。然后开始看提示的报错信息,发现GOPATH和我记忆中的不一样,竟然在C盘😱。。。

  • 通过操作1:go env查看当前GO环境信息,显示GOPATH在C盘
  • 通过操作2:(此电脑->属性->高级系统设置->环境变量)去看了环境变量,在D盘另一个路径,是我想要的存储路径

  靓仔语塞😖,为什么操作2中的设置不起作用呢?

1、原因分析

  并没有找到原因,反正安装GO环境后,通过操作2设置的GOPATH就是失效了,有知道的大兄弟,评论一下啊 😋

2、解决方案

  参考来源传送门

  • 1.打开命令提示符(Win+r然后键入cmd)或Powershell窗口(Win+ i)。
  • 2.输入setx GOPATH %USERPROFILE%\go。(这会将设置GOPATH为路径%USERPROFILE%\go,例如setx GOPATH E:\study\go
  • 3.关闭命令或PowerShell窗口。(环境变量仅适用于新命令或PowerShell窗口,不适用于当前窗口

  注意:第3点非常重要!!!
  做完第二步之后,就去go env ,GOPATH是不会变的,不要问我怎么知道的😠

Q2:VSCODE安装GOLANG插件

1、原因分析

  GOPATH失效的问题终于解决了,但是插件仍然没装上呢

2、解决方案

  对于一些golang的开发包下载不成功,针对这个情况,go在1.13版本中,添加了如下两个环境变量:

GO111MODULE				// 设置go module
GOPROXY					// 设置代理服务器

  此时,问题迎刃而解

解决方案综述:

  1. 配置代理:配置代理大全
  2. 在终端实施原本的git操作或者vscode傻瓜式安装应该也可成功

😄结合参考1参考2操作流程

1.运行 go env -w GO111MODULE=on                      //开启mod
  运行 go env -w GOPROXY=https://goproxy.cn,direct   //设置七牛云goproxy代理
2.进入GOPATH目录,创建src/golang.org/x/目录,进入src/golang.org/x/目录
git clone https://github.com/golang/tools.git
git clone https://github.com/golang/lint.git
3.然后就可以在vscode中按提示安装go的插件了(install all爽歪歪)
 或者在%GOPATH%/src目录的终端下执行以下命令(不成功的包按vscode提示指令执行即可)
go get -u -v github.com/mdempsky/gocode
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
go get -u -v github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/go-delve/delve/cmd/dlv
go get -u -v github.com/stamblerre/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/sqs/goreturns
go get -u -v golang.org/x/lint/golint
go get -u -v github.com/cweill/gotests/...
go get -u -v github.com/fatih/gomodifytags
go get -u -v github.com/josharian/impl
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/haya14busa/goplay/cmd/goplay
go get -u -v github.com/godoctor/godoctor

go install , go build 与 go get ,git clone之间的区别


GOPATH和GOROOT相关

GOROOT 指向系统安装路径,GOPATH指向工作路径

GOROOT = C:\Go
GOPATH = D:\MyWorks

其中,go语言源代码和编译的中间文件、目标文件存放位置如下:

C:\Go <<--- GOROOT 指向的位置
--src <<--- Go 语言自带的源代码
--pkg <<--- 编译的中间文件放在此文件夹
--bin <<--- 编译的目标文件放在此文件夹
D:\MyWorks <<--- GOPATH 指向的位置
--src <<--- 项目源代码放置在此文件夹。!!!警告:一个常犯的错误是把 GOPATH 指向此处!!!
--vendor <<--- 第三方开源代码文件夹
--github.com
--...
--pkg <<--- 编译的中间文件放在此文件夹,Go编译器自动生成此文件夹
--bin <<--- 编译的目标文件放在此文件夹,Go编译器自动生成此文件夹
  • Go 将所有代码保管在同一个工作空间,并期望所有代码都在同一个工作空间。这个地方由环境变量 GOPATH 来标识。对你来说这意味着什么?意味着你必须将代码放在默认的工作空间或者必须修改 GOPATH 环境变量,指向你自己的代码位置
  • 不管哪种方式,项目的真正源代码都需要放在 src 子目录下
    (即 $GOPATH/src/your_project
    $GOPATH/src/github.com/your_github_username/your_project)。
  • 技术上讲,如果你无需导入外部包且使用相对路径导入自己的代码,你的工程不一定非要放在工作空间里,但不推荐这样做。
  • Go语言的中对于包依赖的路径是相对于$GOPATH/src的路径
    参考传送门

三、 总结

没什么总结的,睡去了🌜

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页