【问题标题】:Building all code with Go and './...'使用 Go 和 './...' 构建所有代码
【发布时间】:2017-12-05 01:37:32
【问题描述】:

根据Ethereum Developers' Guide:

您可以使用 go 工具构建所有代码,放置生成的二进制文件 在 $GOPATH/bin 中。

go install -v ./...

./... 在以下情况下做了什么:

go install -v ./...

【问题讨论】:

    标签: linux bash go command-line


    【解决方案1】:

    这将安装在当前或子目录中找到的任何“main”包,

    “子目录”:这就是./... 语法的含义。
    它强制go install 不仅考虑当前文件夹/包('.'),还考虑子文件夹中的那些:“...”

    参见“What is a sensible way to layout a Go project”:在库驱动开发中,您可以拥有多个包“main”:

    将main.go 文件移出根目录允许您从库的角度构建应用程序。您的应用程序二进制文件只是您的应用程序库的客户端。

    有时您可能希望用户以多种方式进行交互,以便创建多个二进制文件。
    例如,如果您有一个允许用户将数字相加的“加法器”包,您可能希望发布命令行版本和 Web 版本。
    您可以通过像这样组织项目来轻松做到这一点:

    adder/
      adder.go
      cmd/
        adder/
          main.go
        adder-server/
          main.go
    

    用户可以使用省略号通过“go get”安装您的“adder”应用程序二进制文件:

    $ go get github.com/benbjohnson/adder/...
    

    瞧,您的用户安装了“adder”和“adder-server”!

    同样,go install -v ./... 也会安装“adder”和“adder-server”。

    注意:-v 在编译时打印包的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多