解决 低版本的IDEA + 低版本的golang plugin + 高版本的golang 出现无法识别函数以及debug不了的问题

大约在2021年的时候, 我购买了idea这款神级java开发利器 IntelliJ IDEA 2021.3.3 (Ultimate Edition)。 不得不说这款软件给java开发带来了很大的便捷性,尤其在前后端一起开发的时候, 有时候经常会遇到这样的场景, 写了后端还要处理前端。 写了前端,还要处理后端,如此往复的切换。还在IDEA没有让人失望。没有出现那种一顿操作猛如虎,一看战绩零杠五的情况。 但有时候, 确实会出现小丢丢的抽风情况。比如更新了library的版本, 但是在IDEA中寻找对应的Class就是找不到。 此种情况大概就是缓存导致,清楚IDEA的缓存问题即可解决。

IDEA除了可以提供java相关的开发外,还有很多其他的语言支持, 比如python,golang,Scala,AWS,docker等。这也是我为什么喜欢IDEA的原因。 接下来分享一个golang插件的问题。众所周知, IDEA每次升级的升级, 必然会连带着相关版本的plugin也会升级, 但是这种只在小版本的迭代中官方会支持, 但是在大版本的迭代中, 一般不会支持。

之前使用go语言做过一些简单项目的开发, 并未涉及太多, 加上那个时候使用的go版本比较低,1.17版本。 我所购买的IDEA自带的go plugin也完全支持。 最近有新的项目, go必须使用1.21版本及以上。 后来我就升级了本地的go 版本到1.21。 但是升级到1.21 版本后, 在idea中遇到如下两个问题。

1. 个别golang 的API不识别, 但是进入到相应的文件却又可以看见是存在的。在调用处给你一个鲜红的红色标示, 并且告诉你 Unresolved reference 'Close'。如下图所示:

此种情况的解决方案是因为golang 的语言进行了些许改动。 只需要在IDEA进行如下设置(在custom tags 设置值 unix)即可。 如下图:

原因是:Go 1.19 引入了unix构建标签。因此,需要您添加unix到自定义标签

2. 运行代码没有问题, 但是debug不了。 此种情况是因为go plugin 的Delve版本太低导致的。 在GitHub(GitHub - go-delve/delve: Delve is a debugger for the Go programming language.)的最下面有这样一段话:

简而言之就是Delve是一个go语言的debug 工具。它的使用需要跟你的本地开发环境的go版本保持一致或者高一些。 高版本的delve支持低版本的golang, 但是低版本的delve不支持高版本的golang。那该怎么做呢?

step 1: 浏览器输入 Tags · go-delve/delve · GitHub。会看到如下图所示的很多版本。

step 2: 选择一个跟你本地golang匹配的版本。 然后选择那个zip 或者tar.gz进行下载。
step 3: 下载下来解压后, 进入到 delve/cmd/dlv 目录。
step 4: 在终端执行 go build 

等一会就会生成dlv.exe 文件(windows 平台),dlv(Mac或者Linux 平台) 这个就是我们要的文件。

step 5: 拷贝这个文件到go 插件的安装目录../JetBrains/IntelliJIdea2021.3/plugins/go/lib/dlv

注意在这个目录下有5个平台, 请选择相应正确的平台目录, 如下图。

至此,所遇到的两个问题就基本解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值