首頁  >  文章  >  後端開發  >  為什麼使用頂級 Cmd 資料夾的預設建議不適用於建立多個二進位檔案?

為什麼使用頂級 Cmd 資料夾的預設建議不適用於建立多個二進位檔案?

Barbara Streisand
Barbara Streisand原創
2024-11-03 09:00:30333瀏覽

Why Doesn't the Default Advice of Using a Top-Level Cmd Folder Work for Building Multiple Binaries?

在單一命令中建立多個套件二進位檔案

為了一次性建置多個套件二進位檔案,您需要建立一個腳本來迭代每個套件並在每個套件上執行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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn