24
Предположим, что я в первую очередь пользователь Linux, но я разрабатываю приложение в Go, которое я хочу быть кросс-платформой. Я искал вокруг, но я не могу найти информацию, чтобы снять следующее:Являются ли Golang бинарники переносимыми?
- Если I
go install
бинарного на моей amd64 системе Ubuntu, он будет также работать на кто-либо 64-битной Ubuntu/Система Debian? - Как я могу использовать
go install
для создания двоичного файла x86_64, который также будет запущен на основе 32-разрядных Debianlikes? - Если я должен использовать Windows для создания двоичного файла, который будет работать в Windows, как я могу также гарантировать, что даже если моя система Windows будет 64-битной, будет создан исполняемый файл для x86_64?
Мои вопросы по сути сводятся к тому, «как статический/переносной компоновщик или компилятор go?»
Я не уверен, что вы просите , Бинарники переносимы между системами с одинаковой ОС и архитектурой. Go строит двоичный файл для вашего хоста GOOS и GOARCH, если вы не указали иначе. Вы не можете взять 64-битный двоичный файл и запустить его на 32-битной системе. – JimB
Это не был мой опыт создания двоичных файлов, предназначенных для кросс-платформы. – cat
Чтобы ответить на ваш вопрос: «Совсем нет». Просто потому, что это невозможно сделать. Никакой компилятор/компоновщик/загрузчик/toolchain не могут этого сделать. Google кросс-компиляция, которая тривиальна с Go. – Volker