微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么交叉编译时不需要指定操作系统版本?

如何解决为什么交叉编译时不需要指定操作系统版本?

前言:我对交叉编译代码的经验很少,而且我主要是从 golang 背景来的

我可以像这样交叉编译 golang GOOS=<OS> GOARCH=<architecture> go build <source-file>
操作系统可能是“linux”或“windows”之类的东西。 为什么我不需要指定哪个版本的 linux 或 windows(或其他)?当然,例如linux 多年来发生了变化,如果它依赖于它,我应该需要指定一个版本。

我想用另一种方式来表达这个问题是,如果我在我的 linux 机器上编译一些代码,它会在所有旧版本的 linux 上运行吗?肯定不会

一个相关的问题:我想这里的操作系统是指内核意义上的操作系统,而不是更广泛意义上的操作系统,它有时被用来表示整个 GNU+linux 系统等。

解决方法

Go Wiki 开始,最低支持的 Linux 内核(GOARCH amd64386)是:

2.6.23 或更高版本

基本上是来自 late 2007 onwards 的任何 Linux 发行版。

可以在 here 中找到其他 Linux 架构(arm*mips*s390x)支持的内核版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。