当 go build 不够并且需要在 go build 的同时运行额外的命令时该怎么办?go tools 是否涵盖了这个用例?如果是这样,约定是什么?
我注意到可以传递额外的标志来构建工具:
//#cgo pkg-config: glib-2.0 gobject-2.0 etc etc
import "C"
Run Code Online (Sandbox Code Playgroud)
是否可以运行额外的命令或至少告诉 go build 使用 Makefile?
不。go 工具并不是一个通用的构建系统。有一些针对 cgo 的规定(如 pkg-config),但它不可扩展。
在go1.4中会有generate命令。这将允许您运行任意命令来预处理源文件,但它始终必须是显式运行的单独步骤。您不能将其挂接到go get、go build、 或go install。
许多需要更复杂构建的项目使用脚本或 Makefile,并避开一般功能go get。然而,库包应该努力get简化依赖性解析。