Как работает cross-compilation?

Junior
1.3k просмотров
AFK Offer AI

Go умеет компилировать под любую ОС и архитектуру прямо с твоей машины — достаточно задать переменные GOOS и GOARCH. Никаких дополнительных тулчейнов ставить не нужно.

GOOS=linux GOARCH=amd64 go build -o app-linux ./cmd/server
GOOS=windows GOARCH=amd64 go build -o app.exe ./cmd/server
GOOS=darwin GOARCH=arm64 go build -o app-mac ./cmd/server

Работает потому что Go компилирует в нативный код сам, без зависимости от системного компилятора. Единственное ограничение — если используешь cgo, кросс-компиляция усложняется, потому что нужен C-компилятор для целевой платформы.

Следующий вопрос

Что такое буферизованный канал?