【问题标题】:Cross-compile to ARMv7 failed交叉编译到 ARMv7 失败
【发布时间】: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 编码部分?

标签: go arm


【解决方案1】:

我相信,它不是 ARMv5。我试图在 MAC OS 上做同样的事情,Mac 上的“文件”命令是 v7,但 Linux 上的“文件”命令没有。但是,我知道 v7 有一些很好的改进,可能会提高程序的性能。

但是,这超出了这个问题的范围,您可能需要更深入地了解您正在做什么以及为什么期望性能改进。 我只能说,它是为 v7 编译的。

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2015-06-11
    • 1970-01-01
    • 2014-04-27
    相关资源
    最近更新 更多