Que fait réellement `go build` ? Comprendre `go build` vs `go install`
Bonjour à tous ! Je viens de commencer à apprendre Go et j'essaie de comprendre comment compiler correctement les projets. J'ai lu des tonnes d'articles, mais je suis toujours confus avec les commandes `go build` et `go install`.
J'ai un projet simple avec un package main à la racine. Quand j'exécute `go build` dans le dossier du projet, il crée un binaire directement là (j'utilise Go 1.20 sur Windows). Mais si je fais `go install`, je ne vois aucun binaire dans le dossier du projet, par contre dans `%GOPATH%/bin` apparaît mon fichier exécutable.
Quelle est la différence ? Pourquoi aurais-je besoin de `go install` si `go build` crée déjà un binaire ? J'ai entendu dire que `go build` vérifie aussi les dépendances, et que `go install` les installe ? Ou ce n'est pas ça ?
Mon code pour l'exemple :
```go
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
```
J'exécute `go build` et j'obtiens `hello.exe` dans le dossier courant (sur Linux juste `hello`). Puis j'exécute `go install` — le binaire dans le dossier du projet disparaît, mais apparaît dans `C:\Users\Me\go\bin\hello.exe`.
Expliquez-moi,