2021年11月29日更新 goland于2021年11月29日更新的GoLand 2021.3 已经原生支持 WSL 中的 Go 项目。
下面是原文章。
直接设置go root浏览到wsl2里面的go文件夹也是不行的,提示错误不是有效的go sdk。
网上看了不少文章,后来在jetbrains官网找到了关于这个issue。
按这个issue里进行设置https://youtrack.jetbrains.com/issue/GO-4377
下面是我按照这个issue操作的中文版的记录,如果你是英文界面可以安装插件中文语言包。
下载goland 2021.1 Beta以上版本 (https://www.jetbrains.com/go/download/download-thanks.html?type=eap&platform=windows&build=211.6305.19&code=GO)
点击运行目标里面的加号,创建一个运行目标,选择里面的wsl,点击下一步,点击完成。
点击按钮,添加语言运行时,选择go。
Go 可执行文件处填写wsl2里面的go可执行文件。
在wsl2中运行命令whereis go
返回结果:
go: /usr/local/go /usr/local/go/bin/go /mnt/d/Go/bin/go.exe
其中第二个/usr/local/go/bin/go就是wsl2里面的go的可执行文件了,填写到上图的位置即可。其中返回结果中第一个是go sdk文件夹,第三个是Windows10里面的go环境映射到了wsl2里。
GOPATH的获取通过命令go env获得,返回结果里面的GOPATH="/root/go",其中/root/go就是我的wsl2里面的gopath的路径了,不同Linux的下路径可能不同,不要按照我的路径填写,要自己通过命令查询得到。
点击确定即可。
然后编辑go编译设置
选择运行于,之前创建的wsl,并且勾选在远程目标上构建,这样就会调用wsl2里面的go进行build了。
这时再点击运行按钮,在底部的运行选项卡就可以看到具体细节了,的确是使用了wls2里面的go环境进行build了,而不是调用win10里面的go环境了。
本文由三分醉博客原创,转载请注明:https://www.sanfenzui.com/golandcallsthegoenvironmentwsl2.html
文章同步更新在知乎:三分醉 - 知乎