Я кодировал программу Go в 64-битной системе, но я хочу скомпилировать 32-битный двоичный файл!
64-разрядный двоичный файл работает просто замечательно, но я понятия не имею, как создать 32-разрядный двоичный файл.
Как мне это сделать?
Я кодировал программу Go в 64-битной системе, но я хочу скомпилировать 32-битный двоичный файл!
64-разрядный двоичный файл работает просто замечательно, но я понятия не имею, как создать 32-разрядный двоичный файл.
Как мне это сделать?
Если вы построили свой Go from source, вы можете создавать любые дополнительные компиляторы и библиотеки для любого процессора и ОС. Если вы работаете на windows/amd64 и хотите построить для windows/386, то это создаст все, что вам нужно для компиляции для windows/386:
set GOARCH=386
cd %GOROOT%\src
make.bat --no-clean
Как только вы это сделаете, вы можете создать исполняемый файл windows/386 с помощью:
set GOARCH=386
cd %YOUR_PROG_DIR%
go build
Поскольку вы находитесь на windows/amd64, вы также сможете даже запускать/тестировать свои программы windows/386. Просто убедитесь, что set GOARCH=386
перед вызовом любых команд для windows/386.
Одно предостережение: это не поддерживает cgo
, поэтому вы не можете использовать пакеты, которые используют cgo
.
Способ, которым я достиг этого (без компиляции компилятора) на моем 64-битном ПК с Windows 7, сначала установил windows amd64, затем загрузил 32- битный zip и распаковал во вторую папку:
\go\go32
\go\go64
Затем GOROOT
PATH
и GOROOT
в моем окне командной строки следующим образом:
set PATH=\go\go32;%PATH%
set GOROOT=\go\go32\
Затем я вернулся и перекомпилировал мое приложение, которое ранее компилировалось с использованием 64-битной версии. Все это можно настроить в пакете, если вы хотите регулярно переключаться между ними.
Хорошо, я наконец решил проблему! Вот как я это сделал (я с треском провалился!).
Затем добавьте C:\MinGW\bin в переменную среды PATH (я предполагаю, что MinGW установлен в C:\MinGw)
Перед запуском go build/go install необходимо установить переменные окружения.