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

Rus*_*sso 23 module go

你好,有人可以帮我运行我的 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)
}
Run Code Online (Sandbox Code Playgroud)

在我的包文件夹中:package1.go

package package1

type Package1 struct {}

func (a *Package1) IsTrue() bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

我的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"
...
Run Code Online (Sandbox Code Playgroud)

我尝试过: go install、go build ... 结果包文件夹内没有错误

go modvendor, go run main.go, go get -u package1 ... 在 proj1 文件夹中运行时会产生相同的消息:

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

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

Rus*_*sso 20

为了解决我面临的错误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
Run Code Online (Sandbox Code Playgroud)

bashrc在终端中加载了文件:

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

现在我可以执行以下过程来使用 Go 语言进行编程。

创建一个新main文件夹...在此main文件夹内: make main.gofile 以以下内容开头package main

运行以下命令:

go mod init main
Run Code Online (Sandbox Code Playgroud)

使用新的包名称创建另一个文件夹:例如package1

package1文件夹内:在第一行中创建所有文件package package1...但不要在此包文件夹内创建MOD文件!

在您的中main.go,您可以导入该包并使用它

import "main/package1"
y := package1.Struct1{a: 1, b: 2,...}
z := y.func1()
Run Code Online (Sandbox Code Playgroud)


PJ *_*net 12

此页面是...的顶部搜索结果

包 xxxxx 不在 GOROOT (/usr/lib/go/src/xxxxx) 中

就我而言,我正在尝试:

go build mything

这给了我错误。解决方案很简单,我需要更具体:

go build mything.go