@FonVald
Backend Developer

В чем проблема кросс компиляции в golang?

Здраствуйте немогу понять почему неработает крос компиляция в golang.
К примеру (рабочая машина с Linux mint, go version 1.5 ): GOOS=linux GOARCH=amd64 go build file.go
получаю бинарник file который успешно запускаеться на рабочей машине либо с полным путем либо ./file
Но когда переношу на debian server (там нету установленого go) и задаю chmod +x (с полным путем или с текущей папки) и пытаюсь выполнить как выше, пишет: -bash: *waytofile*: No such file or directory
Я пробую выставлять значения как для 32 бит так и для 64 - одно и тоже.
Таким же образом пробовал компилировать под win, создавался file.exe но на винде он незапускался, если запускать с командной строки то писалось сообщение чтото вроде: это 16 разрядный файл и неможет запуститься...
В чем проблема и как нормально скомпилировать хотябы для сервака?
  • Вопрос задан
  • 1690 просмотров
Решения вопроса 1
@kshvakov
ldd на файл, там есть какие-то зависимости

либо собирать go build --ldflags '-extldflags "-static" -s' , либо с CGO_ENABLED=0

PS: mint немного "свежее" чем debian, поэтому в бинарнике, скорее всего, есть зависимости на либы которых в Debian нет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы