Avatar ·

¿Qué hace realmente `go build`? Entendiendo `go build` vs `go install`

¡Hola a todos! Acabo de empezar a aprender Go y estoy tratando de entender cómo compilar proyectos correctamente. Leí un montón de artículos, pero todavía me confundo con los comandos `go build` y `go install`. Tengo un proyecto simple con un package main en la raíz. Cuando ejecuto `go build` en la carpeta del proyecto, crea un binario justo ahí (uso Go 1.20 en Windows). Pero si ejecuto `go install`, no veo ningún binario en la carpeta del proyecto, pero en `%GOPATH%/bin` aparece mi archivo ejecutable. ¿Cuál es la diferencia? ¿Para qué necesito `go install` si `go build` ya crea el binario? He oído que `go build` también verifica las dependencias, y que `go install` las instala. ¿O no es así? Mi código de ejemplo: ```go package main import "fmt" func main() { fmt.Println("Hello, Go!") } ``` Ejecuto `go build` y obtengo `hello.exe` en la carpeta actual (en Linux solo `hello`). Luego ejecuto `go install` — el binario desaparece de la carpeta del proyecto, pero aparece en `C:\Users\Me\go\bin\hello.exe`. Explíquenme,