Этой заметкой открываю новую рублику по программированию на 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 |