3 回答
TA贡献1830条经验 获得超9个赞
如果您不想将二进制文件安装到$GOPATH/bin中,您可以做其他开源项目所做的事情,即创建一个脚本。
那里的大多数项目都有用于生成多个二进制文件的 make 文件和构建脚本。
在您的情况下,您可以构建一个脚本来迭代 中的包cmd,并go build在每个包上运行。
cd $GOPATH/someProject
for CMD in `ls cmd`; do
go build ./cmd/$CMD
done
这导致:
[root@node1 test]# ls $GOPATH/someProject
bin1 bin2 cmd
您可以查看几个热门项目:
Grafana - https://github.com/grafana/grafana/blob/master/build.go
圆环 - https://github.com/coreos/torus/blob/master/Makefile
球童 - https://github.com/mholt/caddy/blob/master/dist/automate.go
TA贡献1719条经验 获得超6个赞
从go build帮助:
当编译多个包或单个非主包时,build 编译包但丢弃生成的对象,仅用作检查包是否可以构建。
为了在一个目录下构建所有包,您可以运行go install ./.... 您的所有软件包都将被构建和安装(即放在 $GOPATH/bin 下)。
在您的示例中,您将生成两个可执行文件:$GOPATH/bin/bin1和$GOPATH/bin/bin2
还有另一种方法是编写一个简单的 Makefile 来做你想做的事。
- 3 回答
- 0 关注
- 259 浏览
添加回答
举报
