【发布时间】:2015-11-10 18:15:33
【问题描述】:
在我拥有的一个小程序(特别是 cgo 调用)上,go build 和 go run 非常慢。我想去缓存二进制文件,以便它只在源更新时重建。我会使用带有 % 规则的简单 Makefile,但语言设计者声称 go 的构建支持不需要 Makefile。
还有其他我忽略的选择吗? Go 社区是否更喜欢另一种构建系统(可能是基于哈希的)来缓存和重用构建产品?
【问题讨论】:
-
go install和/或go build -i;他们将安装依赖包,除非更改,否则将来不会重建这些包。一个普通的go build将重建更改的依赖包,但不会保存结果。 -
这正是
go install的用途。 -
go build -x告诉我时间花在重建小程序上。依赖项缓存好了。 -
go install没有参数有效,谢谢! (但不是build -i)。此时我正在研究go list格式、makedepends 和持续构建。