Avatar ·

Como realizar a cross-compilation de um programa Go no macOS?

Olá a todos! Estou escrevendo em Go no macOS e quero compilar um binário para Linux e Windows, para executar no servidor e distribuir para colegas. Tentei simplesmente executar `go build`, mas ele cria um executável apenas para macOS. Li que o Go tem suporte embutido para cross-compilation, mas não consigo entender como fazer corretamente. Aqui está meu código simples (arquivo main.go): ```go package main import "fmt" func main() { fmt.Println("Hello, cross-compilation!") } ``` Tentei: ```bash GOOS=linux GOARCH=amd64 go build main.go ``` Mas recebi o erro: `cannot find package "main" in any of: ...` ou um binário que não executa no Linux. O que estou fazendo de errado? Preciso instalar ferramentas adicionais, como para CGo? Estou no macOS Big Sur, Go versão 1.21. Agradeço por uma explicação passo a passo para iniciantes.