查找go stdlib包的隐式依赖项

时间:2018-01-05 17:08:22

标签: go

我有一个精简的环境,我想在自定义路径中使用。

printenv给了我:

GOOS=linux
GOROOT=/mygo
GOHOSTOS=linux
GOARCH=amd64
TMPDIR=/mytmp
GOHOSTARCH=amd64
GOPATH=/mysrcs
PWD=/home/andreas

现在,如果我尝试编译go代码,则无法找到stdlib:

could not import fmt (cannot find package "fmt" in any of:
/mygo/src/fmt (from $GOROOT)

如果我find /mygo | grep fmt,我得到:

/mygo/pkg/linux_amd64/fmt.a

当我使用系统go(普通bash环境)时,它工作正常。找到stdlib包需要什么隐式依赖?

1 个答案:

答案 0 :(得分:0)

感谢@JimB,我设法让它发挥作用。

我确实想要stdlib的binary-only packaging。 在线讨论是$GOROOT/pkg是二进制分发的有效用例,而$GOPATH/pkg可能会很快被弃用,所以要小心。

如果您想提供仅二进制包,https://github.com/tcnksm/go-binary-only-package显示如何创建(注释)src目录结构,以便停止搜索源文件。