Как на Windows 10 скомпилировать из исходника на Go Lang бинарник для Linux?

Этой заметкой открываю новую рублику по программированию на Go Lang. Один из первых вопросов, которые пришлось решить — как пользователю Windows 10 скомпилировать исполняемый файл для Linux сервера? Процесс сборки бинарного файла на системе одного типа для системы другого типа называется кросскомпиляцией. Ответ достаточно прост, сначала нужно задать константы:

set GOARCH=amd64
set GOOS=linux

Теперь можно компилировать:

go build turboapp.go

Через несколько секунд получаем файл turboapp и закидываем его на сервер, и устанавливаем права доступа:

chmod +x turboapp

Всё, теперь можно запускать!

Данное решение работает для такой конфигурации сервера:

Linux server.developer 2.6.32-696.16.1.el6.x86_64 #1 SMP Wed Nov 15 16:51:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

На windows системе установлен:

go version go1.10 windows/amd64

Для компиляции под другие операционные системы и архитектуры используйте эти таблицы:

OS $GOOS
Linux linux
MacOS X darwin
Windows windows
FreeBSD freebsd
NetBSD netbsd
OpenBSD openbsd
DragonFly BSD dragonfly
Plan 9 plan9
Native Client nacl
Android android

 

Architecture $GOARCH
x386 386
AMD64 amd64
AMD64 с 32-указателями amd64p32
ARM arm