Golang 包不在 GOROOT (/usr/local/go/src/packageName)

有人可以帮我运行我的 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.go


package 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 mod vendor, go run main.go, go get -u package1 ...在 proj1 文件夹中运行时会产生相同的消息:


包 package1 不在 GOROOT (/usr/local/go/src/package1)


VS Code Go Plugin Linter 显示没有问题。请帮忙。谢谢!


德玛西亚99
浏览 527回答 2
2回答

叮当猫咪

为了解决我面临的错误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/gopathexport PATH=$PATH:$GOPATH/binexport GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/binbashrc我在终端中加载了文件: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()

喵喔喔

此页面是...的热门搜索结果包 xxxxx 不在 GOROOT (/usr/lib/go/src/xxxxx)就我而言,我正在尝试:go build mything这给了我错误。解决方案很简单,我需要更具体:go build mything.go
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go