为了账号安全,请及时绑定邮箱和手机立即绑定

golang 二进制文件不在 mips 上运行

golang 二进制文件不在 mips 上运行

Go
胡子哥哥 2023-06-12 19:09:41
我在 Windows 10 上使用 Go 1.11.4,我想为运行 Linux 的 MIPS 74Kc 处理器 (Qualcomm Atheros QCA9558) 编译代码。我编译:GOOS=linux GOARCH=mips go build获取可执行文件,上传并运行它并获得:Illegal instruction再试一次,GOARCH=mipsle得到:./hello_mipsle_linux: line 1: syntax error: unexpected "("我错过了什么?
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

我做构建的主机有一个 FPU,但板子没有。添加GOMIPS=softfloat固定它:

GOOS=linux GOARCH=mips GOMIPS=softfloat go build


查看完整回答
反对 回复 2023-06-12
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我有一个类似的问题,它通过设置解决了GOARCH=mipsle。这应该工作

GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build

我的核心是MIPS 24KEc V5.0

如果不行,请尝试以下步骤

  1. 检查 CPU 架构,Big-Endian 或 Little-Endian,通过

$ lscpu | grep "Byte Order"

cat/proc/cpuinfo也会有帮助。

  1. 检查内核信息,mips 或 mips64,对我来说是 mips (32)

$ uname -a
Linux OpenWrt 4.14.151 #0 Tue Nov 5 14:12:18 2019 mips GNU/Linux
  1. 如果是 Little-Endian,设置GOARCH=mipsle,如果是 64bit Little-Endian,设置 setGOARCH=mips64le

查看完整回答
反对 回复 2023-06-12
?
侃侃无极

TA贡献2051条经验 获得超10个赞

要列出当前构建工具链可用的所有可能的 MIPS 架构师,请使用go tooleg


$ go version


go version go1.12 darwin/amd64


$ go tool dist list | grep mips


linux/mips

linux/mips64

linux/mips64le

linux/mipsle

GOARCH所以可能是您还没有尝试过的剩余排列之一,例如mips64or mips64le。


uname -m将有助于确定目标系统的机器架构。


查看完整回答
反对 回复 2023-06-12
  • 3 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信