Una de las ventajas de Go, es que es una arquitectura multiplataforma. Es decir que soporta múltiples sistema operativos como Windows, macOS, Linux, etc. Go también soporta múltiples arquitecturas, es decir que puede utilizar diferentes tipos de procesadores. Una arquitectura esta definida por el número de cálculos que puede realizar el procesador y por la cantidad de memoria permitida. Hoy en día las computadoras que se comercializan son de 64 bit, pero existen algunas aun de 32. Los programas en Go permiten ejecutar en múltiples plataformas, con apenas unos cambios necesarios.
¿Cómo ver la información de la arquitectura en Go?
Para mostrar la información de la arquitectura, podemos hacer uso del comando de Go…
$ go env
En mi caso, mi arquitectura es de 64 bits.
GOARCH="amd64"
Por lo anterior es indispensable tener en cuenta en que tipo de arquitectura se va a desplegar la aplicación.
Por ello en la variable GOARCH indicamos la arquitectura mientras que en GOOS el sistema operativo.
¿Cómo compilar un programa en Go para ser ejecutado en Windows de 64 bits?
El siguiente es un ejemplo de una compilación para Windows de 64 bits.
$ GOOS=windows GOARCH=amd64 go build main.go
Esto generará un archivo .exe ejecutable.
El proceso anterior se puede realizar, aun cuando el equipo sea una Mac o Linux, no se requiere tener el sistema operativo al cual se desea compilar instalado.
Tabla de sistemas operativos y arquitecturas
Sistema Operativo | Arquitectura |
---|---|
android | arm |
darwin | 386 |
darwin | amd64 |
darwin | arm |
dragonfly | amd64 |
freebsd | 386 |
freebsd | amd64 |
freebsd | arm |
linux | 386 |
linux | amd64 |
linux | arm |
linux | arm64 |
linux | ppc64 |
linux | ppc64le |
linux | mips |
linux | mipsle |
linux | mips64 |
linux | mips64le |
netbsd | 386 |
netbsd | amd64 |
netbsd | arm |
openbsd | 386 |
openbsd | amd64 |
openbsd | arm |
plan9 | 386 |
plan9 | amd64 |
solaris | amd64 |
windows | 386 |
windows | amd64 |