Maison >développement back-end >Golang >Comment puis-je créer à la fois une bibliothèque Go et un exécutable autonome portant le même nom ?

Comment puis-je créer à la fois une bibliothèque Go et un exécutable autonome portant le même nom ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 16:42:15138parcourir

How Can I Build Both a Go Library and a Standalone Executable with the Same Name?

Gestion des noms partagés dans les bibliothèques et les binaires

Lors du développement de logiciels, il peut être souhaitable d'avoir à la fois une bibliothèque et un exécutable autonome avec le même nom. Cela peut entraîner des problèmes dans Go, car l'approche recommandée consiste à donner des noms distincts aux exécutables et aux bibliothèques.

Dans l'exemple fourni, le développeur tente de créer une bibliothèque pour les opérations Tar, mais souhaite également une bibliothèque autonome. Utilitaire de ligne de commande Tar. L'approche initiale consistant à placer le code exécutable dans un répertoire nommé main.go dans le package de bibliothèque ne fonctionne pas comme prévu.

Pour résoudre ce problème, il est recommandé d'organiser la base de code comme suit :

src/
    tar/
        tar.go         # tar library
        tar/
            main.go    # tar binary

Avec cette structure, allez build -o $GOPATH/bin/tar tarbin construit à la fois une bibliothèque nommée tar et un binaire nommé tar.

Si le code est hébergé sur GitHub, la structure de répertoires préférée devient :

src/
    github.com/
        you/
            tar/
                tar.go         # tar library
                tar/
                    main.go    # tar binary

Cette disposition garantit que lors de l'exécution de go get install github.com/you/tar/tar, un binaire nommé tar est installé, et go get install github. .com/you/tar installe la bibliothèque nommée github.com/you/tar.

En fonction de l'objectif principal de la base de code, la bibliothèque et le binaire peuvent être échangés dans le répertoire structure.

En utilisant des sous-répertoires distincts pour la bibliothèque et le binaire dans le répertoire du package, les développeurs peuvent gérer efficacement le code avec des noms partagés dans Go, activant à la fois la bibliothèque et les fonctionnalités exécutables autonomes.

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