Maison > développement back-end > Golang > Pourquoi le conseil par défaut d'utilisation d'un dossier Cmd de niveau supérieur ne fonctionne-t-il pas pour créer plusieurs fichiers binaires ?

Pourquoi le conseil par défaut d'utilisation d'un dossier Cmd de niveau supérieur ne fonctionne-t-il pas pour créer plusieurs fichiers binaires ?

Barbara Streisand
Libérer: 2024-11-03 09:00:30
original
381 Les gens l'ont consulté

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

Création de plusieurs binaires de packages en une seule commande

Afin de créer plusieurs binaires de packages en une seule fois, vous devez créer un script pour parcourez chaque package et exécutez la commande go build sur chacun d'eux, comme indiqué ci-dessous :

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

Ce script entraînera ce qui suit :

[root@node1 test]# ls $GOPATH/someProject
bin1  bin2  cmd
Copier après la connexion

Pourquoi la valeur par défaut Le conseil d'utilisation d'un dossier cmd de niveau supérieur ne fonctionne pas

Le conseil par défaut d'utiliser un dossier cmd de niveau supérieur pour créer plusieurs binaires ne fonctionne pas car la commande go build ne reconnaît pas le cmd dossier sous forme de package. Au lieu de cela, il traite le dossier cmd comme un sous-répertoire du répertoire de travail actuel et construit uniquement le package contenu dans ce répertoire. Cela entraîne la construction d'un seul binaire.

Solution alternative : utilisation d'un fichier Make ou d'un script de construction

Si vous ne souhaitez pas installer les binaires dans $GOPATH/ bin, vous pouvez créer un fichier make ou un script de build pour gérer le processus de build. La plupart des projets open source utilisent cette approche pour produire plusieurs binaires. Par exemple :

Créer un fichier :

# Makefile for building multiple binaries

all: bin1 bin2

bin1:
    go build ./cmd/bin1

bin2:
    go build ./cmd/bin2
Copier après la connexion

Build Script :

<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal