我尝试在我的 Linux 桌面上编译一个 go 程序(Linux desktop 4.10.0-28-generic#32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux),go 版本 go version go1.8.3 linux/amd64
到 arm:
$ GOPATH=/home/xrfang/git/hermes/ GOARM=7 GOARCH=arm go build .
生成了可执行文件,但似乎不是 ARMv7:
$ file hermes
hermes: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
它显示 EABI5。如何交叉编译为 ARMv7?我的 Linux 桌面上是否缺少任何东西以便交叉编译回退到较低的 ARM 版本?
谢谢。
最佳答案
我相信,它不是 ARMv5。我试图在 MAC OS 上做同样的事情,Mac 上的"file"命令说的是 v7,但 Linux 上的"file"命令却没有。不过,我知道 v7 有一些很好的改进,可能会提高程序的性能。
但是,这超出了这个问题的范围,您可能需要更深入地了解您正在做的事情以及为什么期望性能得到改善。 我只能说,它是为 v7 编译的。
关于go - 交叉编译到 ARMv7 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45835134/