Maison >développement back-end >Golang >Quelle est la différence entre « go build » et « go install » dans Go ?

Quelle est la différence entre « go build » et « go install » dans Go ?

DDD
DDDoriginal
2024-12-02 18:01:15340parcourir

What's the Difference Between `go build` and `go install` in Go?

Que fait réellement Go Install ?

La documentation Go n'explique pas la différence entre go build et go install dans détail. On pourrait s'attendre à ce que install suive le modèle make install : il prend les artefacts compilés et les place dans leur emplacement final désigné. Cependant, dans le cas de go install, il les place dans GOROOT/bin à la place.

Go Build vs Go Install

go build compile uniquement le fichier exécutable et le déplace vers la destination spécifiée. D'un autre côté, go install effectue des tâches supplémentaires :

  • Déplace le fichier exécutable vers $GOPATH/bin
  • Mette en cache tous les packages non principaux importés dans $GOPATH/pkg

Les dépendances mises en cache sont ensuite utilisées dans les compilations ultérieures, à condition que le code source reste inchangé.

Une visualisation de l'arborescence des packages

Pour illustrer les résultats de l'utilisation de go build et go install :

├── bin
│   └── hello  # by go install
└── src 
    └── hello
        ├── hello  # by go build
        └── hello.go

Remarque : go build génère le fichier exécutable dans le répertoire courant, tandis que go install le place dans $GOPATH/bin.

Pour des informations plus détaillées et des fonctionnalités avancées, reportez-vous à la documentation officielle de Go : [https://go.dev/doc/install/troubleshooting#how-go-install-works]( https://go.dev/doc/install/troubleshooting#how-go-install-works)

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