Скомпилировать 32-битный двоичный код на 64-битной системе - программирование
Подтвердить что ты не робот

Скомпилировать 32-битный двоичный код на 64-битной системе

Я кодировал программу Go в 64-битной системе, но я хочу скомпилировать 32-битный двоичный файл!

64-разрядный двоичный файл работает просто замечательно, но я понятия не имею, как создать 32-разрядный двоичный файл.

Как мне это сделать?

4b9b3361

Ответ 1

Если вы построили свой 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.

Ответ 2

Способ, которым я достиг этого (без компиляции компилятора) на моем 64-битном ПК с Windows 7, сначала установил windows amd64, затем загрузил 32- битный zip и распаковал во вторую папку:

\go\go32
\go\go64

Затем GOROOT PATH и GOROOT в моем окне командной строки следующим образом:

set PATH=\go\go32;%PATH%
set GOROOT=\go\go32\

Затем я вернулся и перекомпилировал мое приложение, которое ранее компилировалось с использованием 64-битной версии. Все это можно настроить в пакете, если вы хотите регулярно переключаться между ними.

Ответ 3

Хорошо, я наконец решил проблему! Вот как я это сделал (я с треском провалился!).

  • Первым делом я скачал GCC с http://www.mingw.org/.
  • Затем добавьте C:\MinGW\bin в переменную среды PATH (я предполагаю, что MinGW установлен в C:\MinGw)

  • Перед запуском go build/go install необходимо установить переменные окружения.

  • Откройте командную строку и перейдите в C:\Go\src и запустите all.bat из командной строки.
  • Затем вы должны установить GOOS, GOARCH и CGO_ENABLED для окон, 386 и 0 соответственно! (Вы также должны установить GOPATH на путь, по которому идет ваш текущий проект Go).
  • Затем запустите make.bat и make.bat --no-clean После этого вы сможете собрать свой проект для 32-битных систем! Я надеюсь, что это полезно!