如何解决为什么交叉编译时不需要指定操作系统版本?
前言:我对交叉编译代码的经验很少,而且我主要是从 golang 背景来的
我可以像这样交叉编译 golang GOOS=<OS> GOARCH=<architecture> go build <source-file>
操作系统可能是“linux”或“windows”之类的东西。
为什么我不需要指定哪个版本的 linux 或 windows(或其他)?当然,例如linux 多年来发生了变化,如果它依赖于它,我应该需要指定一个版本。
我想用另一种方式来表达这个问题是,如果我在我的 linux 机器上编译一些代码,它会在所有旧版本的 linux 上运行吗?肯定不会
一个相关的问题:我想这里的操作系统是指内核意义上的操作系统,而不是更广泛意义上的操作系统,它有时被用来表示整个 GNU+linux 系统等。
解决方法
从 Go Wiki 开始,最低支持的 Linux 内核(GOARCH
amd64
或 386
)是:
2.6.23 或更高版本
基本上是来自 late 2007 onwards 的任何 Linux 发行版。
可以在 here 中找到其他 Linux 架构(arm*
、mips*
、s390x
)支持的内核版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。