为了账号安全,请及时绑定邮箱和手机立即绑定

将多个二进制文件构建到当前目录中

将多个二进制文件构建到当前目录中

Go
三国纷争 2022-01-04 10:45:03
当进行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 =“更改列表”)。


查看完整回答
反对 回复 2022-01-04
?
繁星coding

TA贡献1797条经验 获得超4个赞

您可以使用项目的文件路径(而不是包名称)编译二进制文件,以在当前目录中生成它们。

例如:

$ go build ~/Go/src/github.com/.../cmd

二进制文件将在您的当前目录中。


查看完整回答
反对 回复 2022-01-04
?
慕斯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


查看完整回答
反对 回复 2022-01-04
  • 3 回答
  • 0 关注
  • 280 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号