代码之家  ›  专栏  ›  技术社区  ›  ctrl-alt-delor

开始运行/生成不获取依赖项

go
  •  1
  • ctrl-alt-delor  · 技术社区  · 6 年前

    go run go build 不是 get ing依赖项。

    我做了什么:

    • 我已经完成了一个包的获取,它获取了它及其依赖项,并构建了它。(一切都好)
    • 我运行它的命令行示例程序。(一切都好)
    • 然后我基于这个例子创建了一个新程序,并且 去跑 它。(一切都好)
    • 然后复制了这个示例程序,并且 去跑 它。(获取依赖项错误)。

    抄本

    #↳ go version
    go version go1.11.4 linux/amd64
    
    #↳ echo $GOPATH
    /home/????/+Files/workshops/programming/golang/gopath
    
    #↳ go get -u github.com/cbroglie/mustache/...
    
    #↳ cp -T $GOPATH/src/github.com/cbroglie/mustache/cmd/mustache/main.go my-mustache.go
    
    #↳ go build -v my-mustache.go
    my-mustache.go:8:2: cannot find package "github.com/spf13/cobra" in any of:
        /usr/local/go/src/github.com/spf13/cobra (from $GOROOT)
        /go/src/github.com/spf13/cobra (from $GOPATH)
    

    我可以理解为什么它还没有安装:它在原始源代码的供应商子目录中。但是,当我构建时,为什么不安装它呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   VonC    6 年前

    先检查你的 $GOPATH/bin 文件夹:一个 go get -u github.com/cbroglie/mustache/... 应该已经编译并安装了所有相关的二进制文件。

    这个 README 提到:

    安装 mustache.go 简单地运行 go get github.com/cbroglie/mustache/... .


    看起来胡子包已经安装并正常工作了。
    但是,当我尝试构建cli示例时,它需要另一个包,如果我去获得它,那么一切都很好,但是我希望go build安装所有需要的包。
    我错了吗?

    go build 它本身不会安装依赖项,所以您需要去获取它,或者激活它。 go 1.11 modules 并声明新程序模块中的依赖项。