Go · Intermediário · Inglês · Técnico
cross-compilation
Compilar para outro sistema ou arquitetura apenas definindo as variáveis GOOS e GOARCH, sem toolchain extra. Gera, por exemplo, um binário Linux a partir de um Windows.
Onde usar
Facilita publicar o mesmo programa para Linux, macOS e Windows pelo CI. Com CGO_ENABLED=0 o binário sai estático e roda em imagens Docker mínimas.
Em código
GOOS=linux GOARCH=amd64 go build -o app
GOOS=darwin GOARCH=arm64 go build -o app
CGO_ENABLED=0 go build -o app # estáticoExemplos
We cross-compile for Linux on my Windows laptop.
Compilamos para Linux no meu notebook com Windows.
Set GOOS and GOARCH to cross-compile the binary.
Defina GOOS e GOARCH para compilar o binário para outro alvo.
Cuidado
Se o código usa cgo, a compilação cruzada exige um compilador C do alvo; sem cgo ela funciona direto.
Sinônimos
compilação cruzada