编译器如何交叉编译到不同的操作系统和体系结构?

时间:2016-11-11 11:17:08

标签: go cross-compiling

我非常感兴趣的是Go(自v1.5起)具有内置的交叉编译选项。 但是如何编译不同的操作系统和架构呢? 我的意思是需要知道(并且可能表现得像)目标机器语言和平台。

1 个答案:

答案 0 :(得分:4)

  

我的意思是需要知道(并且可能表现得像)目标机器语言和平台。

是的,Go编译器必须知道目标操作系统是如何工作的,但它不需要像目标操作系统一样,因为Go编译器不会运行已编译的可执行二进制文件,它只需要生成它。

所有Go工具需要知道的是不同操作系统的二进制格式,OS和架构细节(例如指令集,字大小,字节序,对齐,可用寄存器等; more info on this) 。这些知识内置于Go工具中。