Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah Nasihat Lalai Menggunakan Folder Cmd Tahap Atas Tidak Berfungsi untuk Membina Berbilang Perduaan?

Mengapakah Nasihat Lalai Menggunakan Folder Cmd Tahap Atas Tidak Berfungsi untuk Membina Berbilang Perduaan?

Barbara Streisand
Barbara Streisandasal
2024-11-03 09:00:30338semak imbas

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

Membina Berbilang Perduaan Pakej dalam Satu Perintah

Untuk membina berbilang perduaan pakej sekali gus, anda perlu mencipta skrip untuk ulangi setiap pakej dan jalankan arahan go build pada setiap satu, seperti yang ditunjukkan di bawah:

<code class="bash">cd $GOPATH/someProject
for CMD in `ls cmd`; do
  go build ./cmd/$CMD
done</code>

Skrip ini akan menghasilkan berikut:

[root@node1 test]# ls $GOPATH/someProject
bin1  bin2  cmd

Mengapa Nasihat Lalai Menggunakan Folder Cmd Peringkat Atas Tidak Berfungsi

Nasihat lalai menggunakan folder cmd peringkat atas untuk membina berbilang binari tidak berfungsi kerana arahan go build tidak mengenali folder cmd sebagai pakej. Sebaliknya, ia menganggap folder cmd sebagai subdirektori bagi direktori kerja semasa dan hanya membina pakej yang terkandung dalam direktori tersebut. Ini menyebabkan hanya satu binari dibina.

Penyelesaian Alternatif: Menggunakan Skrip Buat Fail atau Bina

Jika anda tidak mahu memasang binari ke dalam $GOPATH/ bin, anda boleh membuat fail buat atau skrip bina untuk mengurus proses binaan. Kebanyakan projek sumber terbuka menggunakan pendekatan ini untuk menghasilkan berbilang binari. Contohnya:

Buat Fail:

# Makefile for building multiple binaries

all: bin1 bin2

bin1:
    go build ./cmd/bin1

bin2:
    go build ./cmd/bin2

Bina Skrip:

<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>

Atas ialah kandungan terperinci Mengapakah Nasihat Lalai Menggunakan Folder Cmd Tahap Atas Tidak Berfungsi untuk Membina Berbilang Perduaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn