猿问

错误“无法加载程序包:程序包my_prog:找到了程序包my_prog和main”

在我的GOPATH中,我有类似以下内容:


/bin/

/pkg/

/src/

/src/my_prog/

/src/my_prog/main.go

/src/my_prog/d_interface.go

/src/my_prog/d_struct_that_implements_the_interface.go

在main.go我package main,在d_interface.go和d_struct_that_implements_the_interface.go我有package my_prog。


当我尝试go build my_prog出现以下错误时:


can't load package: package my_prog: found packages my_prog (d_interface.go) and main (main.go) in C:\dev\Code\Go\src\my_prog

这是否意味着任何属于的文件都package main应该放在其自己的文件夹中?如果是这样,原因是什么?


幕布斯6054654
浏览 306回答 3
3回答

UYOU

是的,每个程序包必须在其自己的目录中定义。源结构在如何编写Go代码中定义。包是可以在多个程序中使用,可以发布,导入,从URL获取等的组件。因此,拥有一个自己的目录和一个程序可以拥有的目录一样有意义。

婷婷同学_

另外,如果您要做的就是将main.go文件分解为多个文件,则只要将其他文件命名为“ package main”,只要您仅在其中一个文件中定义main函数即可,去。

呼如林

确保您的软件包已安装在$GOPATH目录中或已经在工作空间/软件包中。例如:如果您的$GOPATH = "c:\go",请确保里面的包C:\Go\src\pkgName
随时随地看视频慕课网APP

相关分类

Go
我要回答