Maison >développement back-end >Golang >Comment puis-je créer un binaire Go et une bibliothèque avec le même nom ?

Comment puis-je créer un binaire Go et une bibliothèque avec le même nom ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-30 19:55:111051parcourir

How Can I Create a Go Binary and Library with the Same Name?

Partage d'un nom entre bibliothèques et binaires dans Go

Lors de la création d'un progiciel, vous souhaiterez peut-être une bibliothèque et un binaire autonome avec le même nom. Cela peut être utile pour des outils comme tar, qui est utilisé à la fois comme commande et comme bibliothèque.

Au départ, vous pouvez essayer une structure de répertoires simple :

src/
    tar/
        tar.go # belongs to package tar
        main.go # imports tar and provides a main function

Cependant, cette approche conduit à un binaire nommé « tarbin » au lieu de « tar ». Pour résoudre ce problème, la documentation Go recommande de séparer la commande et la bibliothèque dans des répertoires distincts :

src/
    tar/
        tar.go # belongs to package tar
    tarbin/
        main.go # imports tar and provides a main function

Bien que cela produise une commande nommée "tar", la bibliothèque s'appelle désormais "tarbin".

Une solution plus élégante consiste à imbriquer le binaire dans le répertoire de la bibliothèque :

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

Cette structure fournit à la fois un binaire nommé "tar" et une bibliothèque nommée "tar."

En fonction de vos priorités, vous pouvez échanger les positions de la bibliothèque et du binaire au sein de la structure imbriquée.

Le fait de regrouper tout le code dans une seule arborescence offre des avantages, tels que exécutez go install ./... à partir du répertoire racine pour créer tous les packages et sous-packages.

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