【发布时间】:2018-03-21 00:26:26
【问题描述】:
我尝试在我的 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 版本 @ 987654321@布防:
$ 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 版本?
谢谢。
【问题讨论】:
-
你怎么能说它不是为 EABI5 的 v7 编译的?
-
@RaviTezu,对不起,我以为 EABI5 是 ARMv5 的意思??如果不是,我怎么知道?事实上,我调查的原因是我没有通过使用 GOARM=7 获得任何性能提升。我的程序在安卓机器上运行,调用 screencap 以 RGBA8888 原始格式进行截图,然后将其压缩为 JPEG。使用 ARMv7 能否提高性能,尤其是 JPEG 编码部分?