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

Barbara Streisand
Lepaskan: 2024-11-03 09:00:30
asal
333 orang telah melayarinya

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>
Salin selepas log masuk

Skrip ini akan menghasilkan berikut:

[root@node1 test]# ls $GOPATH/someProject
bin1  bin2  cmd
Salin selepas log masuk

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
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan