xgo:Go CGO 交叉编译器
xgo - Go CGO 交叉编译器
尽管 Go 努力成为一种跨平台语言,但从一个平台到另一个平台的交叉编译并不像想象的那么简单,因为您需要将 Go 源代码引导到每个平台和架构。
交叉编译的第一步是 Dave Cheney 的包,它根据你现有的 Go 安装自动引导必要的源代码。 尽管这对于很多情况来说已经足够了,但在官方库内部使用 CGO 的情况下,某些缺点变得明显:对第三方平台代码的任何依赖都不可用,因此这些部分不能很好地交叉编译(原生 DNS 解析、系统证书访问、等等)。
启用交叉编译的一个进步是 Alan Shreve 的包,它不是基于现有的 Go 安装引导不同的平台,而是从 golang 网站下载官方预编译的二进制文件并将其注入本地工具链。 由于预构建的二进制文件已经包含必要的平台特定代码,因此解决了少数缺失的依赖关系,并且可以开始真正的交叉编译……纯 Go 代码。
但是,仍