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!