【问题标题】:Golang. Cross Compiling for MIPS戈朗。 MIPS 的交叉编译
【发布时间】:2017-08-29 17:17:54
【问题描述】:

我已经尝试编译我的简单程序:

func main(){fmt.Printf("Hello")}

根据文档在我的带有 64 位 Debian Linux 的 PC 上 MIPS 架构

https://golang.org/doc/install/source#environment

通过使用命令

GOOS=linux GOARCH=mipsle go build 
GOOS=linux GOARCH=mips go build

每次我得到错误:

运行时/内部/系统编译

未知架构“mipsle(mips)”

有趣的是,如果尝试使用命令:

GOOS=linux GOARCH=mipsle64 go build

程序已构建。

它是否依赖于我电脑上的系统操作系统?如何为 MIPS 或 MIPSLE 构建二进制文件?

【问题讨论】:

  • 您使用的是哪个版本的 Go?对我来说,你所有的例子都有效。使用-v编译时的日志输出是什么?
  • 版本是 go version go1.6 linux/amd64 使用命令编译 GOOS=linux GOARCH=mipsle go build -v 给我与上面相同的信息 :(
  • 你知道 go 1.8 现在已经发布了,这意味着 1.6 已经有一年多了,对吧?
  • 是的......就是这样。最旧版本的 golang 更新到 1.8 并且一切正常
  • 我投票结束这个问题,因为它可以通过安装最新版本的 Go 来解决。

标签: go compilation mips


【解决方案1】:

Go 1.6 不支持 MIPS 或 MIPSLE。 1.6 支持 MIPS64(LE)。 1.8 支持 MIPS(LE)。

来自https://golang.org/doc/install/source

  • amd64(也称为 x86-64)
    • 成熟的实现。
  • 386(x86 或 x86-32)
    • 堪比 amd64 端口。
  • 手臂 (ARM)
    • 支持 Linux、FreeBSD、NetBSD、OpenBSD 和 Darwin 二进制文件。没有其他端口广泛使用。
  • arm64 (AArch64)
    • 支持 Linux 和 Darwin 二进制文件。 1.5 中的新功能,没有其他端口那么好用。
  • ppc64、ppc64le(64 位 PowerPC 大端和小端)
    • 支持 Linux 二进制文件。 1.5 中的新功能,没有其他端口那么好用。
  • mips、mipsle(32 位 MIPS 大端和小端)
    • 支持 Linux 二进制文件。 1.8 中的新功能,没有其他端口那么好用。
  • mips64、mips64le(64 位 MIPS 大端和小端)
    • 支持 Linux 二进制文件。 1.6 中的新功能,没有其他端口那么好用。
  • s390x (IBM System z)
    • 支持 Linux 二进制文件。 1.7 中的新功能,没有其他端口那么好用。

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 2019-01-18
    • 2018-05-31
    • 2019-09-27
    • 1970-01-01
    • 2011-06-12
    • 2014-07-18
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多