Подтвердить что ты не робот

Являются ли переносные устройства Golang переносимыми?

Предположим, что я являюсь главным пользователем Linux, но я разрабатываю приложение в Go, которое я хочу быть кросс-платформой. Я искал вокруг, но я не могу найти информацию, чтобы освободить следующее:

  • Если я go install является двоичным файлом в моей системе amd64 Ubuntu, будет ли он работать и на 64-битной системе Ubuntu/Debian другого уровня?
  • Как я могу использовать go install для сборки двоичного кода x86_64, который также будет запущен из-за коробки на 32-разрядных DebianLike?
  • Если я должен использовать Windows для создания двоичного файла, который будет запускаться в Windows, как я могу также убедиться, что даже если моя система Windows будет 64-битной, будет создан исполняемый файл для x86_64?

Мои вопросы по сути сводятся к тому, "как статичный/переносимый идет компоновщик/компилятор?"

4b9b3361

Ответ 1

  • Да, это будет; это касается практически всех двоичных файлов, скомпилированных для 64-разрядного Linux, а не только написанных в Go (за исключением разделяемых библиотек, на которые Go не полагается)
  • Вы можете установить переменные среды GOOS и GOARCH перед созданием: GOOS=windows GOARCH=386 go build (или go install или что-то еще) и т.д.
  • По умолчанию для вашей системы будет создан двоичный файл, но это не обязательно - см. 2