【发布时间】:2021-06-09 09:09:17
【问题描述】:
前言:我的交叉编译代码经验很少,我主要是从 golang 背景开始的
我可以像这样交叉编译 golang GOOS=<OS> GOARCH=<architecture> go build <source-file>
操作系统可能是“linux”或“windows”之类的东西。
为什么我不需要指定哪个版本的 linux 或 windows(或其他)?当然,例如linux 多年来发生了变化,如果它依赖于它,我应该指定一个版本。
我想用另一种方式来表达这个问题是,如果我在我的 linux 机器上编译一些代码,它会在所有旧版本的 linux 上运行吗?肯定不会
一个相关问题:我想这里的操作系统是指内核意义上的操作系统,而不是更广泛意义上的操作系统,它有时用来表示整个 GNU+linux 系统等。
【问题讨论】:
-
您不必指定版本,因为您无法交叉编译到旧操作系统,因为没有人使用旧操作系统,因为那会非常危险。这就是为什么没有选择 Windows 95 的标志。
-
@Jay - 如果我在我的 linux 机器上编译一些代码,它会在所有旧版本的 linux 上运行吗?当然不是 - 关于所有,您可能是对的,但您也可能会惊讶于它运行了多少旧版本甚至更多新版本。
标签: linux go compilation cross-compiling