двоичный код golang не работает на mips - PullRequest
1 голос
/ 14 марта 2019

Я использую Go 1.11.4 для Windows 10 и хочу скомпилировать код для процессора MIPS 74Kc (Qualcomm Atheros QCA9558) под управлением Linux.Я компилирую с:

GOOS=linux GOARCH=mips go build

Получите исполняемый файл, загрузите и запустите его и получите:

Illegal instruction

Попробуйте еще раз w / GOARCH=mipsle и получите:

./hello_mipsle_linux: line 1: syntax error: unexpected "("

Что мне не хватает?

Ответы [ 2 ]

1 голос
/ 15 марта 2019

У моего хоста, выполняющего сборку, был FPU, но на плате его нет. Это исправлено:

GOOS=linux GOARCH=mips GOMIPS=softfloat go build

1 голос
/ 14 марта 2019

Чтобы получить список всех возможных архитекторов MIPS, доступных для вашей текущей сборки инструментов, используйте go tool например,

$ go version

go version go1.12 darwin/amd64

$ go tool dist list | grep mips

linux/mips
linux/mips64
linux/mips64le
linux/mipsle

так что, вероятно, одна из оставшихся GOARCH перестановок, которые вы не пробовали, например, mips64 или mips64le.

uname -m поможет определить архитектуру машины вашей целевой системы.

...