修复使用Go module后vscode 智能提示不能用的问题

在升级到 1.11后, go加入了go module这一特性, 支持相对路径的导入包,这样在$GOPATH之外的地方也可以进行项目开发。

但是vscode中很多插件只能工作在 $GOPATH下, 其中最重要的代码智能提示也是如此
代码提示主要由 github.com/mdemsky/gocode 这个模块负责, 为了支持go module, 要使用新的gocode模块,项目地址为 github.com/stamblerre/gocode, 为了更新插件

  1. 将$GOPATH/bin 中的 gocode 可执行文件删掉

  2. go get -u -v github.com/stamblerre/gocode 获取包, 这里是不能安装的,有冲突

  3. 去到 $GOPATH/src/golang.org/x 这个目录下, 删除tools这个包,它和新版的 gocode不兼容,不要试图 git pull获取最新版,这个是被墙了的

  4. 从 https://github.com/golang/tools 下载最新的tools包,clone很慢就直接下载 zip 文件, 解压到刚才原来的位置。

  5. 编译安装 stamblerre/gocode, go build -o $GOPATH/bin/gocode-gomod github.com/stamblerre/gocode

到此, Vscode智能提示就可以正常工作了

### Golang 在 VSCode 中运行时报错的解决方案 当在 VSCode 中运行 Golang 项目时,可能会遇到多种错误。以下是针对常见问题的具体解决方法: #### 1. **模块模式下的错误** 如果使用 Go Modules (mod) 模式开发,在调试过程中可能因环境变量未正确设置而导致错误。可以通过调整系统的 `GO111MODULE` 环境变量来修复问题[^1]。 - 打开系统高级设置中的环境变量配置界面。 - 新增或修改名为 `GO111MODULE` 的环境变量,将其值设为 `auto` 或 `on`。 - 完成后重新启动 VSCode,使更改生效。 #### 2. **Go 工具链安装失败的问题** 部分开发者会在安装 Go 插件所需工具链时遭遇失败的情况。这通常是因为网络连接不稳定或其他原因引起的依赖项缺失。一种简单有效的办法是通过命令行强制更新工具集[^2]。 执行以下命令刷新本地缓存并重装必要组件: ```bash go install golang.org/x/tools/gopls@latest ``` 此外还可以尝试切换到国内镜像源加速下载过程,比如清华 TUNA 镜像站点提供的服务地址:https://mirrors.tuna.tsinghua.edu.cn/go/。 #### 3. **GOROOT 错误提示** 对于某些特定场景下报告 “package XXX is not in GOROOT”的情况,则需确认项目的 GOPATH 是否已正确定义于 launch.json 文件之中[^3]。 编辑 `.vscode/launch.json` 添加自定义路径参数作为工作区根目录的一部分: ```json { "version": "0.2.0", "configurations": [ { "name": "Launch Package", "type": "go", "request": "launch", "mode": "debug", "program": "${fileDirname}", "env": { "GOPATH": "/your/custom/path" }, "args": [] } ] } ``` 注意替换 `/your/custom/path` 成实际使用的文件夹位置字符串形式表示绝对路径。 完成上述操作之后再次测试程序能否正常编译与执行。 --- ### 总结 以上介绍了三种常见的关于 Golang 在 VSCode 下可能出现的异常状况及其对应的处理措施。每种情形都提供了具体的实施步骤以及辅助说明帮助理解原理所在。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值