Go交叉编译
2019-04-18
查看操作系统平台和内核版本:uname -a
Mac 下编译 Linux 和 Windows 64位可执行程序
Linux 下编译 Mac 和 Windows 64位可执行程序
Windows 下编译 Mac 和 Linux 64位可执行程序
Mac 编译 Linux 32位可执行程序
CGO_ENABLED = 0 交叉编译不支持 CGO 所以要禁用它。
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
CGO是一个令人惊异的技术,它允许Go与C的类库交互操作,让Go能够使用 C语言 积累的各种资源。
对于使用CGO的程序,大部分情况可以通过配置$CC参数使用自行准备的交叉编译工具进行编译。
其中$CC参数指定的是ARM工具链位置。
目前解决CGO跨平台编译问题的思路有:
– 用目标平台的工具链进行交叉编译
– 用原生代码重写CGO实现的功能,当然这是一句废话:small: