Cross-Compiling Golang …

Compilar seu código go em um binário é muito simples:

$ go install <package>

Isso construir√° o bin√°rio para seu sistema operacional e arquitetura atuais. Mas tamb√©m √© poss√≠vel compilar bin√°rios para outros sistemas operacionais e at√© arquiteturas. Voc√™ s√≥ precisa modificar algumas vari√°veis ‚Äč‚Äčde ambiente:

  • GOARCH – a arquitetura, por exemplo, amd64, 386 ou arm
  • GOOS – o sistema operacional – linux, darwin ou windows

Construindo o compilador primeiro …

Você pode dar uma olhada na saída de go envpara ver a aparência de sua configuração atual. Mas, para realmente fazer a compilação cruzada, você precisa primeiro construir os compiladores.

Com Mac OS / Homebrew, basta instalar v√° com --cross-compile-commonou --cross-compile-all. Veja a receita para detalhes.

Se voc√™ instalou o Go from source, apenas defina as vari√°veis ‚Äč‚Äče chame ./all.bashna srcpasta cada combina√ß√£o GOARCH/ que GOOSvoc√™ precisa.

Este guia pode ajudar se você estiver totalmente perdido.

Construindo seu projeto …

De volta ao nosso projeto. Semelhante a construir o compilador, voc√™ s√≥ precisa modificar as vari√°veis ‚Äč‚Äčde ambiente e chamar go build como antes. Go agora criar√° uma subpasta que ./bin/corresponde √† sua combina√ß√£o os / arch. Aqui voc√™ encontrar√° seu bin√°rio crosscompiled. Obviamente, voc√™ tamb√©m pode passar o varis em uma linha:

$ GOARCH=arm GOOS=linux go build helloworld

PS: Se voc√™ deseja fazer uma compila√ß√£o cruzada para ARM v5 / v6 CPU (por exemplo, para o raspberry pi), voc√™ precisa definir o GOARM=5uso de diferentes conjuntos de opera√ß√Ķes para matem√°tica de ponto flutuante.