我非常感兴趣的是Go(自v1.5起)具有内置的交叉编译选项。 但是如何编译不同的操作系统和架构呢? 我的意思是需要知道(并且可能表现得像)目标机器语言和平台。
答案 0 :(得分:4)
我的意思是需要知道(并且可能表现得像)目标机器语言和平台。
是的,Go编译器必须知道目标操作系统是如何工作的,但它不需要像目标操作系统一样,因为Go编译器不会运行已编译的可执行二进制文件,它只需要生成它。
所有Go工具需要知道的是不同操作系统的二进制格式,OS和架构细节(例如指令集,字大小,字节序,对齐,可用寄存器等; more info on this) 。这些知识内置于Go工具中。