最近在自学go语言,刚刚开始就遇到了这个无法debug的问题。

具体vscode和go的安装过程不再演示,有很多现有教程,基本都教到了安装go插件,有一些也写了如何配置debug环境。

但是当这些都配置好后,f5想要debug代码时候,就会报错:

Build Error: go build -o d:\language\project\go\study1\__debug_bin.exe -gcflags all=-N -l .
go: go.mod file not found in current directory or any parent directory; see 'go help modules' (exit status 1)

提示go.mod文件缺失。

查了一些资料之后,我发现如果在之前有配置过代理,GO111MODULE属性会打开。

这个属性的作用就是控制是否使用go.mod进行依赖管理,因此就出现了两种不同的解决办法:

方法一 GO111MODULE=auto

第一个方法简单粗暴,直接将GO111MODULE属性改回auto,这样会对项目所在根目录进行判定,存在go.mod文件使用go module,不存在则从GOPATH和vender中查找包。

具体方法如下:

//打开终端
go env -w GO111MODULE=auto
方法二 创建go.mod文件

既然提示go.mod文件缺失,那么直接创建go.mod文件就好了,go本身就提供了创建go.mod的语句,具体方法如下:

//打开终端
go mod go_pro

运行之后查看左侧的项目结构,会发现多出了一个go.mod文件:

这时再进行debug就不会报错啦:

结语

初学一门语言总会遇到各种各样的bug,像这种简单入门的bug可能在高手眼中不值一提,但在新手的眼中可能就是一门语言劝退的原因,在这里把我探索的过后的解决方式提供给大家,希望大家可以共同进步!