之前一直用的go1.17现在因为接入了一个推特API的包 被破升级为go1.18导致代码出现两个问题
- goland版本太低 不支持范型 导致部分代码飘红(但是不影响运行 好奇怪)
- 因为代码的goroot改为了 go1.18 ,环境里的是之前的go1.17 , 所以导致我的makefile命令不能用 :
compile: version "go1.18" does not match go tool version "go1.17.13"
首先来解决第一个问题:
参考这篇https://mp.weixin.qq.com/s/_R7pKC2B6bzEt3U2Pj2vDg
在这里下载:https://www.jetbrains.com/go/download/other.html
找到2021.3.5这个版本是可以完美支持go.18升级之后的范型 。
假如你是mac m1芯片 要下Apple Silicon dmg版本的。这点很重要。不然下了会打不开(如果遇见这种情况 在terminal种用这个命令可以查看启动日志:/Applications/GoLand.app/Contents/MacOS/goland
你会发现它会爆出不匹配的错误:couldn’t be loaded because it doesn’t contain a version for the current architecture.}
)
下载好之后重新打开就可以了。你会发现之前由于范型而飘红的错误消失了。
问题解决。
不要下载最新的版本!现在是20221125凌晨2点,我刚才下载的是2022.2.5的版本,结果死活打不开,用/Applications/GoLand.app/Contents/MacOS/goland
这个命令去看日志也没有发现什么有价值的信息:只有一个warn:
warn:Received an empty list of custom trusted root certificates from the system.......enable debug logging in category 'org.jetbrains.nativecerts' for more information
也不清楚是不是这个empty list引起的。总之就是打不开 只能看到一直卡在启动界面 。
所以下载2021.3.5 就行 功能正常使用。
最后如果你们遇到打不开的问题 可以看看这篇:https://blog.csdn.net/qq_35246620/article/details/120743773
上边是今晚解决的第一个问题
第二个问题:是在执行makefile的命令的时候遇到 version “go1.18” does not match go tool version “go1.17.13”。这个问题其实就是你的代码使用的go版本和你的计算机环境里的go命令的版本不一致,我的环境里的 /usr/local/bin/go 是go1.17 代码使用的go1.18
(可以参考我之前写的这篇:https://blog.csdn.net/qq_37106501/article/details/126684961?spm=1001.2014.3001.5502)
当时偷懒了 选择了将两边环境都调整为go1.17 低版本 ,这次就不得不升级为go1.18 ,那就来彻底解决这个问题。
于是brew install go@1.18
下载好后 去goland里看下
这个时候去执行 makefile的命令还是不可以的
哪怕版本只差了一点点 🤏
于是将goroot 版本选择为刚才下载的
这个时候 makefile就可以正常运行了。
问题解决!文章来源:https://www.toymoban.com/news/detail-403141.html
这里有一个细节:我下载完后 brew install go@1.18 为啥系统就默认以这个homebrew的为准,而不是之前的 /usr/local/bin/go 的go1.17, 我没有去覆盖 也没做软连接,系统环境就换成了homebrew目录下的 go1.18.1 难道这个优先权比较大?文章来源地址https://www.toymoban.com/news/detail-403141.html
到了这里,关于macos 升级goland 支持范型&compile: version “go1.18“ does not match go tool version “go1.17.13的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!