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

标签 go cross-compiling

我对 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/

相关文章:

dictionary - 分配给映射键多少内存?即map [uint16] uint16是每个键2个字节还是存储为uint32/64?

go - 如何在golang模板中的LOOP内执行IF/ELSE条件?

c++ - 为什么在交叉编译时 CMAKE_FIND_ROOT_PATH 和 CMAKE_INCLUDE_PATH 不覆盖我的根文件系统?

为 arm 交叉编译 glibc,得到对一些展开函数的 undefined reference

google-app-engine - 如何通过代理本地测试gae golang urlfetch?

dns - 如何在 Go 服务器中创建自定义域别名?

go - 使用与 node.js 或 Python 不同的结果的 Go 签名的 Hmac/sha1 消息

c++ - 为 arm-none-eabi-gcc 交叉编译库

c++ - 为 beaglebone black 交叉编译 c++ openCV 应用程序时出现问题