我对 Go(自 v1.5 起)具有内置交叉编译选项这一事实非常感兴趣。 但如何针对不同的操作系统和架构进行编译呢? 我的意思是,这需要了解(并且可能表现得像)目标机器语言和平台。
最佳答案
I mean that would require knowing (and probably behaving like) the target machine language and platform.
是的,Go 编译器必须知道目标操作系统如何工作,但它不需要像目标操作系统那样运行,因为 Go 编译器不会运行 em>编译后的可执行二进制文件,它只需要生成它。
所有 Go 工具需要知道的是不同操作系统的二进制格式,以及操作系统和架构细节(例如指令集、字大小、字节序、对齐方式、可用寄存器等; more info on this )。这些知识内置于 Go 工具中。
关于go - 编译器如何交叉编译到不同的操作系统和体系结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40546840/