【问题标题】:Go Lang Workspace Duplicate Package Name Executable CollisionGo Lang 工作区重复包名可执行冲突
【发布时间】:2016-03-11 17:10:39
【问题描述】:

如果遵循 GoLang 文档的工作空间结构,则两个可执行包可能会共享相同的包名。

比如github上有两个包:

$ $GOPATH/src/github.com/alpha/import
$ $GOPATH/src/github.com/beta/import

首先安装来自用户alphaimport 包:

$ go install github.com/alpha/import

二进制可执行文件现在在$GOPATH/bin 中可用,并命名为import

然后安装来自用户beta 的第二个包:

$ go install github.com/beta/import

此安装/构建将使用来自用户 betaimport 二进制文件替换来自用户 alpha 的现有 import 二进制文件。

更好的命名约定可以避免这种冲突;但是,在使用第三方库时是否有解决此问题的标准做法?

【问题讨论】:

    标签: go namespaces package


    【解决方案1】:

    这种冲突只发生在可执行文件中,从不发生在包中。可执行文件不太常见,而且通常有区别名称,所以在实践中我从未遇到过这个问题。

    “修复”或“最佳实践”显而易见且非常简单:只需在安装后重命名二进制文件即可。

    【讨论】:

    • 您可能还提到指定输出名称:go build -o myexename.
    猜你喜欢
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 2019-01-23
    • 2015-11-09
    • 2014-09-25
    • 1970-01-01
    • 2019-10-20
    • 2019-11-24
    相关资源
    最近更新 更多