我遇到了
cannot execute binary file: Exec format error
从以下存储库运行以下命令时出错:
go mod 下载 github.com/cih-y2k/wedeploy-gosocketio
已删除并重新下载必要的目录,这不是解决方案。
这是否意味着我需要下载另一种语言才能执行该文件?
最佳答案
我的建议是遵循提到的所有步骤,将 theta 与 arm64 一起使用,否则您可能会使用来自另一个架构(如 amd64
)的二进制文件。
我快速检查了我的树莓派,没有报告任何问题,因为 go.mod
文件已被替换。与一个具有正确分支的新分支。
最后,无法执行二进制文件:Exec格式错误
意味着您使用的二进制文件与当前主机架构不匹配,在本例中为arm64
。
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release sed 's/v0.0.0-20200107021104-147ed25f233e/v0.0.0-20220216073600-600054663ec1/' go.mod > aux_file
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release sed 's/github.com\/wedeploy\/gosocketio v0.0.7-beta/github.com\/cih-y2k\/wedeploy-gosocketio v0.0.8/' aux_file > aux_file2
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release rm go.mod
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release ± cp aux_file2 go.mod
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release ± rm aux_file aux_file2
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release ± go mod download github.com/cih-y2k/wedeploy-gosocketio
pi@raspberrypi ~/go/src/github.com/thetatoken/theta release ±
由于 raspberry 是基于 Linux 的,因此您可以使用以下命令来验证架构:
pi@raspberrypi ~ arch ; uname -m
armv6l
armv6l
Go Env 也是您应该做的检查:
pi@raspberrypi ~ go env | grep -i ARCH
GOARCH="arm"
GOHOSTARCH="arm"
关于在 Raspberry Pi4 上下载 Go Mod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73354242/