导入go软件包时出现问题

时间:2020-02-27 03:33:48

标签: go module

这是我的代码结构:

addition
|_ summing
   |_ sum_prg.go
|_ addition.go
|_ go.mod

go.mod的内容

module addition

go 1.14

sum_prg.go的内容

package summing

func sumIt(ii int) int {
    return ii + 10
}

additioning.go的内容

package main

import (
    "fmt"
    "summing"
)

func main() {
    fmt.Println("hi")
    fmt.Println(summing.sumIt(1))
}

这是我执行的步骤:

  1. 在添加文件夹内,进入mod init添加

  2. 在求和文件夹中,进行构建

  3. 另外,请安装附加内容

在第3步中,我收到一个错误“ addition.go:5:2:软件包汇总不在GOROOT中(c:\ go \ src \ summing)”

这是我第一次尝试编程。

我可以成功地遵循here中列出的步骤,但是当我尝试遵循相同的步骤时,会看到上面提到的错误。

我是否总是需要具有somethng.com/else形式的模块名称?

1 个答案:

答案 0 :(得分:2)

您可以从module FAQ

中看到

模块是否可以与相对导入(例如导入“ ./subdir”)一起使用?

不。请参阅#26645,其中包括:

在模块中,终于有了子目录的名称。
如果父目录显示为“ module m”,则子目录将导入为“ m/subdir,而不再是“ ./subdir”。

因此,如前所述,请使用“ addition/summing”(带有exported method name)从main进行导入。