你好,有人可以帮我运行我的 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