首页 > 后端开发 > Golang > 如何在没有顶级'cmd”文件夹的情况下同时构建多个 Go 包二进制文件?

如何在没有顶级'cmd”文件夹的情况下同时构建多个 Go 包二进制文件?

DDD
发布: 2024-11-02 22:49:29
原创
780 人浏览过

How to Build Multiple Go Package Binaries Simultaneously Without a Top-Level `cmd` Folder?

同时构建多个 Go 包二进制文件

问题围绕同时构建多个包二进制文件,作为使用顶级的默认建议cmd 文件夹似乎不起作用。提供的代码示例显示了一种特定的文件夹结构,可以正确构建特定的二进制文件。

要使用 go build 命令一步构建所有二进制文件,建议使用以下变体:

cd $GOPATH/someProject
for CMD in `ls src/cmd`; do
  go build ./src/cmd/"$CMD"
done
登录后复制

此命令迭代 src/cmd 目录中的包并单独构建每个包。生成的二进制文件将存储在各自的包目录中。

或者,如果您不希望将二进制文件安装到 $GOPATH/bin 中,可以使用脚本。这是开源项目中的常见做法,其中构建脚本处理多个二进制生成。

可以使用以下示例脚本:

cd $GOPATH/someProject
for CMD in `ls cmd`; do
  go build ./cmd/$CMD
done
登录后复制

此脚本迭代 cmd 中的包目录并在每个目录上运行 go build。结果是一组存储在各自 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

以上是如何在没有顶级'cmd”文件夹的情况下同时构建多个 Go 包二进制文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板