当进行go build github.com/.../foo从任何目录,编译的二进制将被放置在从其中我执行命令的目录。这样做时,go build /github.com/.../cmd/...我希望所有编译的二进制文件都出现在我的当前目录中。但他们没有。如何将该包的多个/所有二进制文件编译到我当前的工作目录中?
3 回答
DIEA
TA贡献1820条经验 获得超3个赞
正如问题 23616所述:
go build不构建的事实是违反直觉的
您将能够在当前目录中获得多个二进制文件...问题14295“cmd/go:go build 应该能够写入多个可执行文件”将完成。
但这将适用于 Go 1.13(不是 1.12,2019 年末)
这太接近工作了。我不确定为什么没有。
我们应该在 Go 1.12 中修复它。
显然-o不能与多个二进制目标一起使用,但隐式“写入当前目录”应该可以工作,而不是什么都不做。对提议的 CL 进行了一些讨论,以及实施的 CL 中断的评论
go build -a std cmd。
请参阅CL 143139/(CL =“更改列表”)。
繁星coding
TA贡献1797条经验 获得超4个赞
您可以使用项目的文件路径(而不是包名称)编译二进制文件,以在当前目录中生成它们。
例如:
$ go build ~/Go/src/github.com/.../cmd
二进制文件将在您的当前目录中。
慕斯709654
TA贡献1840条经验 获得超5个赞
来自go build -h:
当编译多个包或单个非主包时, build 编译包但丢弃生成的对象,仅用作检查包是否可以构建。
但是你可以使用这个 one-liner 来实现相同的结果(只会构建直接在 cmd 下的二进制文件): find $GOPATH/src/github.com/.../cmd -mindepth 1 -maxdepth 1 | xargs -n1 go build
- 3 回答
- 0 关注
- 280 浏览
添加回答
举报
0/150
提交
取消
