同时构建多个包二进制文件
根据您的询问,可以通过创建顶级“cmd”来同时构建多个包二进制文件" 文件夹结构,这已在其他地方建议过。但是,您在使用这种方法时遇到了挑战。
要使用“cmd”文件夹结构构建单独的二进制文件:
确保您具有以下文件结构(如根据您的工作示例):
├── cmd │ ├── bin1 │ │ └── main.go │ ├── bin2 │ │ └── main.go ├── src │ ├── shared │ │ ├── foo │ │ │ └── foo.go
为您想要构建的每个二进制文件执行以下命令,替换“"具有所需的二进制名称:
go build -o "<binary-name>" ./cmd/<binary-name>
例如:
go build -o bin1 ./cmd/bin1 go build -o bin2 ./cmd/bin2
这将在项目的根目录中创建“bin1”和“bin2”二进制文件.
使用脚本的替代方法
如果您不想将二进制文件安装到 $GOPATH/bin 中,您可以创建一个迭代包和的构建脚本单独构建每个二进制文件。
创建一个名为“build-all.sh”的脚本,其中包含以下内容:
<code class="sh">#!/bin/bash # Iterate over the packages in the "cmd" directory for CMD in `ls cmd`; do # Build the binary for each package go build -o $CMD ./cmd/$CMD done</code>
制作脚本可执行文件:
<code class="sh">chmod +x build-all.sh</code>
运行脚本以一步构建所有二进制文件:
<code class="sh">./build-all.sh</code>
这种方法提供了灵活性和控制超越二进制构建过程并模仿许多开源项目使用的内容。
以上是如何同时构建多个 Go 二进制文件?的详细内容。更多信息请关注PHP中文网其他相关文章!