我有一个精简的环境,我想在自定义路径中使用。
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包需要什么隐式依赖?
答案 0 :(得分:0)
感谢@JimB,我设法让它发挥作用。
我确实想要stdlib的binary-only packaging。
在线讨论是$GOROOT/pkg
是二进制分发的有效用例,而$GOPATH/pkg
可能会很快被弃用,所以要小心。
如果您想提供仅二进制包,https://github.com/tcnksm/go-binary-only-package显示如何创建(注释)src
目录结构,以便停止搜索源文件。