Avatar ·

构建Go项目时出现"package XXX is not in GOROOT"错误

大家好!我刚开始学习Go,遇到了一个奇怪的错误。我创建了一个简单的项目,结构如下: ``` myapp/ ├── main.go └── utils/ └── helper.go ``` 在`main.go`中,我导入了自己的包: ```go package main import "myapp/utils" func main() { utils.SayHello() } ``` 而在`utils/helper.go`中: ```go package utils import "fmt" func SayHello() { fmt.Println("Hello from utils!") } ``` 尝试构建:`go build main.go` — 然后得到: ``` main.go:3:8: package myapp/utils is not in GOROOT (/usr/local/go/src/myapp/utils) ``` Go版本是1.21,通过官方安装程序安装。项目位于`~/projects/myapp`。没有配置`GOPATH`变量。尝试运行`go env -w GO111MODULE=off`,但随后出现了另一个关于在GOPATH中找不到包的错误。我哪里做错了?是否需要创建go.mod文件?还是我导入内部包的方式不正确?希望能得到详细解释,如何正确组织项目。