构建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文件?还是我导入内部包的方式不正确?希望能得到详细解释,如何正确组织项目。