Go:在 powerpc64(big-endian)上不是 运行
Go: Not running on powerpc64 (big-endian)
我已经下载了 PowerPC 64 的 GO 包 (ppc64) machine.When 我 运行 它抛出以下错误:
./go: line 1:ELF▒9@p@8: not found
./go: line 2: syntax error: unexpected ")"
机器信息如下,
uname -a
Linux 0005B9427C4C 3.12.19-rt30 #1 SMP Sun Jul 2 16:21:28 IST 2017 ppc64 GNU/Linux
来自 /proc/cpuinfo:
处理器:0
cpu:e6500,支持 altivec
时钟:1599.999984MHz
修订版:2.0 (pvr 8040 0120)
processor : 1
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 2
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 3
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 4
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 5
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 6
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 7
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
timebase : 41666666
platform : CoreNet Generic
model : fsl,B4860QDS
下载了go1.8.3.linux-ppc64le.tar.gz包
我已经搜索了很多但找不到任何解决方案。你能告诉我出了什么问题吗?如何解决?
您的内核报告 ppc64
架构。这意味着它是 big endian 模式下的 64 位 POWER。 Go 项目仅发布 ppc64le
(little endian 模式下的 64 位 POWER)构建:Go stable downloads 仅提供 go1.8.3.linux-ppc64le.tar.gz
下载。
Go 源码包含一个 64 位 POWER big-endian 端口,但你需要自己编译它。 (但这绝对是人迹罕至的地方,所以你可能 运行 会遇到问题。)请注意,即使在大端模式下,Go 1.9 也需要 POWER8,因此取决于你拥有的硬件,即使是自编译版本可能是一个死胡同。 (/proc/cpuinfo
输出中的 e6500
表明此平台 不 POWER8 兼容。)
另一个选项是 GCC Go 编译器 (gccgo
)。这个 Go 编译器将与许多 GCC 目标一起工作,并且在可预见的未来它很可能会在某种程度上得到支持。然而,很少有 Go 程序员关心 gccgo
,因此您可能会遇到无法使用它的包。
我已经下载了 PowerPC 64 的 GO 包 (ppc64) machine.When 我 运行 它抛出以下错误:
./go: line 1:ELF▒9@p@8: not found
./go: line 2: syntax error: unexpected ")"
机器信息如下,
uname -a
Linux 0005B9427C4C 3.12.19-rt30 #1 SMP Sun Jul 2 16:21:28 IST 2017 ppc64 GNU/Linux
来自 /proc/cpuinfo: 处理器:0 cpu:e6500,支持 altivec 时钟:1599.999984MHz 修订版:2.0 (pvr 8040 0120)
processor : 1
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 2
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 3
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 4
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 5
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 6
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
processor : 7
cpu : e6500, altivec supported
clock : 1599.999984MHz
revision : 2.0 (pvr 8040 0120)
timebase : 41666666
platform : CoreNet Generic
model : fsl,B4860QDS
下载了go1.8.3.linux-ppc64le.tar.gz包
我已经搜索了很多但找不到任何解决方案。你能告诉我出了什么问题吗?如何解决?
您的内核报告 ppc64
架构。这意味着它是 big endian 模式下的 64 位 POWER。 Go 项目仅发布 ppc64le
(little endian 模式下的 64 位 POWER)构建:Go stable downloads 仅提供 go1.8.3.linux-ppc64le.tar.gz
下载。
Go 源码包含一个 64 位 POWER big-endian 端口,但你需要自己编译它。 (但这绝对是人迹罕至的地方,所以你可能 运行 会遇到问题。)请注意,即使在大端模式下,Go 1.9 也需要 POWER8,因此取决于你拥有的硬件,即使是自编译版本可能是一个死胡同。 (/proc/cpuinfo
输出中的 e6500
表明此平台 不 POWER8 兼容。)
另一个选项是 GCC Go 编译器 (gccgo
)。这个 Go 编译器将与许多 GCC 目标一起工作,并且在可预见的未来它很可能会在某种程度上得到支持。然而,很少有 Go 程序员关心 gccgo
,因此您可能会遇到无法使用它的包。