Вот очень хорошая статья: Кросс-компиляция в Go, "на пальцах" разъясняющая почему они в Go ратуют за статическую сборку: кросс-компиляция, и переносимость на любую аппаратную и операционную платформу!
Вот как я элементарно тут же, не выходя из своего Linux, собираю всё то же тестовое приложение для 2-х (32-бит + 64-бит) Windows:2 февраля 2015 в 03:36
Код: Выделить всё
olej@R420:~/2022/Go$ GOOS=windows GOARCH=386 go build -o hello.1.exe
olej@R420:~/2022/Go$ GOOS=windows GOARCH=amd64 go build -o hello.2.exe
Код: Выделить всё
olej@R420:~/2022/Go$ ls -l *.exe
-rwxrwxr-x 1 olej olej 1901056 янв 20 01:30 hello.1.exe
-rwxrwxr-x 1 olej olej 2138112 янв 20 01:31 hello.2.exe
Код: Выделить всё
olej@R420:~/2022/Go$ file *.exe
hello.1.exe: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows
hello.2.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
Нужно будет из своей инсталляции GoLang выудить полный список переменных GOOS + GOARCH - в GoLang отличная система help.На данный момент для актуальной версии Go 1.4.1 реализована поддержка следующих платформ:
Linux 2.61 и выше — amd64, 386, arm
MacOS X 10.6 и выше — amd64, 386
Windows XP и выше — amd64, 386
FreeBSD 8 и выше — amd64, 386, arm
NetBSD — amd64, 386, arm
OpenBSD — amd64, 386
DragonFly BSD — amd64, 386
Plan 9 — amd64, 386
Google Native Client — amd64p32, 386
Android — arm