当我从这个项目中休息时,出现了一个奇怪的问题。启动 Goland 后,我在尝试运行我的项目时遇到了很多错误。
构建我的一个包时的具体错误是: start.go: package project/game is not in GOROOT (C:\Go\src\project\game)
start.go: package project/game is not in GOROOT (C:\Go\src\project\game)
我在下面有一个文件夹结构 C:\Users\username
C:\Users\username
go |-src |-project |-game |-entity |-whatever.go |-game_stuff.go |-server
我的环境变量是这样的:
GOROOT=C:\Go GOPATH=C:\Users\ketchup\go
对于每个模块(项目/游戏/实体、项目/游戏、项目/服务器),我做了一个git mod init.
git mod init
在构建时,Goland 将尝试运行:
C:\Go\bin\go.exe build -o C:\Users\ketchup\AppData\Local\Temp\___go_build_project_server.exe project/server
并返回错误。
谁能帮我解决这个问题?有点迷失,因为我上次打开 Goland 时运行良好。甚至不确定要看什么方向 - 我对 Go 还很陌生,我不确定要看什么文档:\谢谢大家!
一个非常愚蠢的结论(主要是我的部分),但我的问题来自go mod init在每个文件夹中都完成了。从我所做的每个文件夹中删除go.mod和删除后,我可以毫无问题地构建(通过终端)go.dep``go mod init
go mod init
go.mod
go.dep``go mod init
此外,我在 GoLand 中的包没有被检测到,因为我在设置中启用了 Go 模块。我禁用了它,GoLand 能够索引外部包和我自己的包。
您可能将 GO111MODULE 设置为“on”,这将在 go mod 中使用。关闭 GO111MODULE 可能会解决此问题。
go env -w GO111MODULE=off