在單一命令中建立多個套件二進位檔案
為了一次性建置多個套件二進位檔案,您需要建立一個腳本來迭代每個套件並在每個套件上執行go build 命令,如下所示:
<code class="bash">cd $GOPATH/someProject for CMD in `ls cmd`; do go build ./cmd/$CMD done</code>
此腳本將產生以下結果:
[root@node1 test]# ls $GOPATH/someProject bin1 bin2 cmd
為什麼使用預設值使用頂級Cmd 資料夾的建議不起作用
使用頂級cmd 資料夾建立多個二進位檔案的預設建議不起作用,因為go build 命令無法識別cmd資料夾作為一個套件。相反,它將 cmd 資料夾視為當前工作目錄的子目錄,並且僅建置該目錄中包含的套件。這會導致僅建置一個二進位檔案。
替代解決方案:使用Make 檔案或建置腳本
如果您不想將二進位檔案安裝到$GOPATH/ bin,您可以建立make 檔案或建置腳本來管理建置過程。大多數開源專案都使用這種方法來產生多個二進位檔案。例如:
製作檔案:
# Makefile for building multiple binaries all: bin1 bin2 bin1: go build ./cmd/bin1 bin2: go build ./cmd/bin2
建置腳本:
<code class="bash">#!/bin/bash # Iterate over the packages in cmd and run go build on each for CMD in `ls cmd`; do go build ./cmd/$CMD done</code>
以上是為什麼使用頂級 Cmd 資料夾的預設建議不適用於建立多個二進位檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!