关于在Linux环境下在VSCode中配置Golang遇到的各种问题及解决方案

系统环境供参考
ArchLinux
内核版本 linuxzen-6.26
Go Version gcc-go 1.18 → go 1.20.2 **本次大无语事件的主角

突发奇想想要在Arch上配置个golang环境试试,因为有了之前在两台win上配置以及遇到很多问题的经验感觉还蛮有自信,没想到这次配置花了接近10h

因为之前在用yay连aur下载东西的时候要用到proxychains,而proxychains的官方文档表明这玩意必须使用gcc-go编译 gcc-go和go这俩包是相互冲突的,于是我的电脑上装的是gcc-go而不是go这个包,aur上的gcc-go只更新到了1.18这个版本

参考http://t.csdn.cn/f3nTk这位大佬的教程很顺利的配置好了除开delve(dlv)和gopls这两个module以外的其他东西,但是这两个死活装不上去,每次安装都会failed并且抛出一大堆错误
对于按照大佬的教程走且全部安完的普通用户,可能会出现vsc go拓展报错显示需要 go.mod 或者说 提示你目前的工作区域不在$GOPATH/src内的情况,请检查你的GO111MODULE这个环境变量是否在安装完毕后设置为空而不是on (注: go env设置环境变量的方法是 go env -w 变量名=value) ,这个问题出现的原因应该是因为在较高版本的go中开启这一项会使用工作区工作模式 (即go.work) 而非GOPATH工作模式 (即go.mod) ,对于较老版本的go可以通过开启实验性工作区模式解决,但是新版本工作区模式实际上已经转正,需要关闭GO111MODULE这一项来使用

接上条,换了七牛云,阿里云等提供的GOPROXY都无法解决问题,再次审视vsc给出的报错信息发现,居然不是因为下载错误,而是安装的时候出了问题,这时便可以肯定是安装的时候编译出问题了
经过一个多小时的尝试,偶然发现在aur/Community这个库里面有人提供了 delve 和 gopls 这两个包,使用pacman安装后成功解决问题

成功安装好delve和gopls后发现gopls和delve无法识别出fmt这个包,其他的内置包也是如此,于是我clone了github上的go,并把他设置为GOROOT,发现仍然无法识别出go的各项内置包,按理来说他应该会 显示无法正常import或者import成功,但是无论如何设置GOROOT始终显示无法 找到 src中的fmt
针对这个问题的解决方法是 将gcc-go卸载并替换为go这个软件包,并将github上clone过来的go文件夹设置为GOPATH,完美解决无法找到的问题

无法找到fmt包的问题解决了,但是又出现了fmt包导入失败的情况,vsc提示需要重新编译gopls和delve,直接点击后会发现又出现编译问题无法安装
这里的解决方法是在pacman里面先将delve和gopls包卸载,再重新安装一遍,再进vsc点击重新编译即可安装成功
问题出现的原因可能是gopls和delve包在安装的时候用的是gcc-go而非go导致vsc也没辙,也可能有gcc-go只更新到1.18的原因存在

至此大功告成!然后你就会不经意间发现你使用VSCode过后关机和重启会慢很多很多(,这里可以排除是watchdog的问题因为我先前已经禁用。观察显卡占用发现关闭VSCode之后这玩意还在后台跑着,并且一直让显卡呼呼呼转,可能是后台运行中的VSCode不配合shutdown导致只能等待固定时间后关机
我的解决方案是修改 /etc/systemd/ 中的system.conf和user.conf,将这两个配置文件中的DefaultTimeoutStopSec改成你想要他等待关机的时间,超过这个时间linux会强制结束所有进程然后关机,我设置的是20秒,记得去掉这一项前面的注释!!!!
重启电脑后,运行systemctl daemon-reexec让他重新加载一下system.conf即可完成配置应用

前文提到我装gcc-go是为了编译proxychains,linux大版本更新可能会需要你重新编译所有软件,所以到时候就把gcc-go安回来重新编译一次再装回go吧

网上有关gcc-go的资料很少,官网也没有详细介绍,能尽量不用还是尽量不用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在VSCode配置Golang环境,可以按照以下步骤进行操作: 步骤 1:安装Go语言环境 首先,你需要确保已经在你的计算机上安装了Go语言环境。可以从官方网站 https://golang.org/dl/ 下载并安装对应操作系统的安装包。 步骤 2:安装VSCode插件 打开VSCode,在扩展商店搜索并安装 "Go" 插件。该插件为你提供了在VSCode进行Golang开发所需的各种功能和工具。 步骤 3:设置环境变量 在安装完Go语言环境后,需要将Go的可执行文件路径添加到系统的环境变量。在Windows上,可以通过编辑 "系统环境变量" -> "Path" 并添加Go可执行文件路径来完成。在macOS或Linux上,可以编辑 `~/.bash_profile` 或 `~/.profile` 文件,并添加以下内容: ``` export PATH=$PATH:/usr/local/go/bin ``` 步骤 4:配置VSCode 打开VSCode,按下 `Ctrl + Shift + P`(Windows)或 `Cmd + Shift + P`(macOS),输入 "Go: Install/Update Tools",然后选择此命令以安装Go所需的工具。 如果你已经安装了Go语言环境,这些工具将会被自动安装。如果没有安装,VSCode插件将会提示你安装。 步骤 5:创建和运行Golang项目 现在,你可以通过在VSCode创建一个新的文件夹,并在其创建一个 `main.go` 文件来开始编写Golang代码。 在 `main.go` 文件,你可以输入以下内容来进行测试: ```go package main import "fmt" func main() { fmt.Println("Hello, Go!") } ``` 然后,你可以按下 `Ctrl + F5`(Windows)或 `Cmd + F5`(macOS)来运行你的Golang程序。 这就是在VSCode配置Golang环境的基本步骤。希望对你有所帮助!如果你还有其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值