【问题标题】:Go build: “Cannot find package” (even though GOPATH is set)Go build:“找不到包”(即使设置了 GOPATH)
【发布时间】:2014-03-24 00:55:00
【问题描述】:

我的问题与this 非常相似,不同的是我有最佳答案指出的目录层次结构,但我仍然遇到同样的问题,为什么?

$ echo $GOROOT
/usr/local/go

$ echo $GOPATH
/home/mitchell/go

$ cat /home/mitchell/go/src/main.go
package main
import "comment/create"
func main() { }

$ cat /home/mitchell/go/src/comment/create/***.go(bunch of go files)
package create

$ go build main.go
main.go:3:8: import "comment/create": cannot find package

【问题讨论】:

  • 它适用于我的电脑。我建议运行go envgo build -x main.go 以获得更多线索。
  • 也许是权限?放置 go build 的输出
  • main.go 应该在 src/comment/main.go 中 - 即它需要在包本身中(“comment”或“mypackage123”)。同时发布go env的输出。
  • @elithrar,虽然我同意main.go 不应该位于src/main.go 上,但这并不能解释编译失败。
  • 你导出了 $GOPATH 吗?不导出,go就不捡了。

标签: go


【解决方案1】:

感觉你的目录结构不对:

去/src/comment/create

应该是这样的

go/src/github.com/"你的 git org"/comment/create

例如,我的 github 组织是 SupportLocal,我的 repo 是“Comment”,create 是我的 go 包名称,我的目录如下所示:

去/src/github.com/supportlocal/comment/create

那么您的导入将如下所示:

“github.com/supportlocal/comment/create”

让我知道这是否有效。

【讨论】:

    猜你喜欢
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    相关资源
    最近更新 更多