单个go模块中的多个软件包

单个go模块中的多个软件包,go,module,project,Go,Module,Project,我是新来的。试图理解如何在go模块中构建我的项目 正如您在屏幕截图中看到的,我有一个go模块。 我在里面有一条主线。内容如下 package main import "go-test/repo/test" func main() { test.GetFun() } package repo import "fmt" // GetFun just for fun func GetFun() { fmt.Println("f

我是新来的。试图理解如何在go模块中构建我的项目

正如您在屏幕截图中看到的,我有一个go模块。 我在里面有一条主线。内容如下

package main

import "go-test/repo/test"

func main() {
    test.GetFun()
}
package repo

import "fmt"

// GetFun just for fun
func GetFun() {
    fmt.Println("fun")
}
在repo/test.go内部,以下是内容

package main

import "go-test/repo/test"

func main() {
    test.GetFun()
}
package repo

import "fmt"

// GetFun just for fun
func GetFun() {
    fmt.Println("fun")
}
当我运行时,
go build
下面是我得到的错误

   maing.go:3:8: package go-test/repo/test is not in GOROOT (/usr/local/go/src/go-test/repo/test)
您的test.go定义了包repo,因此您应该像 导入“go test/repo”,主要指的是回购,而不是测试, 比如repo.GetFun()。请阅读


–icza

您的
test.go
定义了包
repo
,因此您应该像导入“go test/repo”一样导入它,并在
main
中将其称为
repo
,而不是
test
,比如
repo.GetFun()
。请阅读。此外,上述假设您的模块路径为
go test
(这必须通过
go.mod
)反映出来。谢谢。这对我有用。