goland配合wsl2直接调用wsl2里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返回结果:其中第二个/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

文章同步更新在知乎:三分醉 - 知乎