关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
去年关闭。
Improve this question
嗨,有人可以帮我运行我的 main.go:go run main.go
?
有两个文件夹,它们彼此相邻:
proj1 文件夹有 main.go、go.mod
package1 文件夹有 package1.go、go.mod、utility.go
在 main.go 里面:
package main
import (
"package1"
"fmt"
)
func main() {
y := package1.Struct1{
v: "1",
}
z := package1.isTrue()
fmt.Println(z)
}
在我的包文件夹中:package1.gopackage package1
type Package1 struct {}
func (a *Package1) IsTrue() bool {
return true
}
我的 Go 版本:go1.15.2 linux/amd64我的 Go 环境设置:
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/user1/.cache/go-build"
GOENV="/home/user1/.config/go/env"
GOMODCACHE="/mnt/sda5/gopath/pkg/mod"
GOOS="linux"
GOPATH="/mnt/sda5/gopath"
GOROOT="/usr/local/go"
...
我试过 :go install, go build ... 结果包文件夹内没有错误
go mod vendor, go run main.go, go get -u package1 ... 在 proj1 文件夹中运行时会产生相同的消息:
包 package1 不在 GOROOT (/usr/local/go/src/package1) 中
VS Code Go Plugin Linter 显示没有问题。
请帮忙。谢谢!
最佳答案
解决我面临的错误 package package1 is not in GOROOT (/usr/local/go/src/package1)
我必须确保正确配置了环境变量。
我在 bashrc
中添加了这些行文件:
export GO111MODULE=on
#GOPATH MUST BE OUTSIDE OF GOROOT directory!!!
export GOPATH=/mnt/sda1/programming/gopath
export PATH=$PATH:$GOPATH/bin
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
我加载了 bashrc
终端中的文件:source ~/.bashrc
现在我可以执行以下程序来使用 Go 语言进行编程。新建
main
文件夹...在此
main
文件夹:制作
main.go
文件以 package main
开头运行以下命令:
go mod init main
使用新的包名称创建另一个文件夹:例如package1
内package1
文件夹:使用
package package1
制作所有文件在它的第一行......但不要在这个包文件夹中制作 MOD 文件!!!在您的
main.go
,您可以导入该包并使用它import "main/package1"
y := package1.Struct1{a: 1, b: 2,...}
z := y.func1()
关于Golang 包不在 GOROOT (/usr/local/go/src/packageName),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64448560/