Maison >développement back-end >Golang >Comment créer plusieurs binaires Go simultanément ?

Comment créer plusieurs binaires Go simultanément ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 01:46:31538parcourir

How to Build Multiple Go Binaries Simultaneously?

Création simultanée de plusieurs binaires de packages

Selon votre demande, la création simultanée de plusieurs binaires de packages peut être réalisée en créant un "cmd" de niveau supérieur " structure de dossiers, qui a été suggérée ailleurs. Cependant, vous avez rencontré des difficultés avec cette approche.

Pour créer des fichiers binaires individuels à l'aide d'une structure de dossiers « cmd » :

  1. Assurez-vous que vous disposez de la structure de fichiers suivante (comme selon votre exemple de travail) :

    ├── cmd
    │   ├── bin1
    │   │   └── main.go
    │   ├── bin2
    │   │   └── main.go
    ├── src
    │   ├── shared
    │   │   ├── foo
    │   │   │   └── foo.go
  2. Naviguez jusqu'au répertoire racine du projet.
  3. Exécutez la commande suivante pour chaque binaire que vous souhaitez construire, en remplaçant "< nom-binaire>" avec le nom binaire souhaité :

    go build -o "<binary-name>" ./cmd/<binary-name>

Par exemple :

go build -o bin1 ./cmd/bin1
go build -o bin2 ./cmd/bin2

Cela créera les binaires "bin1" et "bin2" dans le répertoire racine du projet .

Approche alternative utilisant un script

Si vous préférez ne pas installer les binaires dans $GOPATH/bin, vous pouvez créer un script de build qui itère sur les packages et construit chaque binaire individuellement.

  1. Créez un script nommé "build-all.sh" avec le contenu suivant :

    <code class="sh">#!/bin/bash
    
    # Iterate over the packages in the "cmd" directory
    for CMD in `ls cmd`; do
    
      # Build the binary for each package
      go build -o $CMD ./cmd/$CMD
    done</code>
  2. Créez le exécutable du script :

    <code class="sh">chmod +x build-all.sh</code>
  3. Exécutez le script pour créer tous les binaires en une seule étape :

    <code class="sh">./build-all.sh</code>

Cette approche offre flexibilité et contrôle sur le processus de construction binaire et imite ce que de nombreux projets open source utilisent.

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!

Déclaration:
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