Golang 跨平台其实没那么简单
Posted Golang分享汇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang 跨平台其实没那么简单相关的知识,希望对你有一定的参考价值。
推荐理由
golang编译原生可执行程序,相比于依赖虚拟机运行的语言,或者执行器语言,方便程序跨平台运行;golang的交叉编译要保证golang版本在1.5以上,所以习惯用低调版本的golang同好们请自行升级。
对比
解决 |
易用性 | 跨平台 | 优势 |
gox | 优 | window,mac,linux,freebsd,netbsd | 根据 CPU 的数量并行地为各个平台编译,效率高 |
goxc | 优 | window,linux,arm | 提供对可执行程序的打包,部署,版本管理等多项工具 |
xgo | 差 | 提供对android,ios 等移动平台的支持 |
重点
gox 可以容易地编译运行在各种 Go 支持的平台上 功能实用,满足window,linux,mac 三大主流平台足够,但 Gox 能并行地编译项目,而 goxc 不能。
goxc是一个功能丰富的工具,能编译系统项目,上传二进制文件,产生下载页面等;相较之下,Goxc 在交叉编译二元文件方面强点。
xgo 是一个cgo编译环境,是目前最通用交叉编译方案,借助xgo docker容器环境 ,理论上提供全平台的可执行程序交叉编译方案,但是编译后的结果兼容性目前还无法完全验证。
后记
理论上,在对应的平台编译目标可执行程序,可以保证程序的兼容性,稳定性,最优的性能,但是实际开发中,提供目标环境一致性的编译环境很困难,这样提供交叉编译特性,为编程语言提供了强大的移植能力,保证了编程语言生命力,同时强调交叉编译也不是万能的,特别是依赖CGO的解决方案,往往兼容性都不强,这也是操作系统平台决定的,有兴趣可以多了解CGO,笔者的工作环境和发布环境都是linux,经过长期实践,推荐gox作为首选,对于mac 用户,推荐goxc作为首选。
GitHub https://github.com/mitchellh/gox
GitHub https://github.com/laher/goxc
GitHub https://github.com/karalabe/xgo
希望大家能从本期分享学到有价值的东西。
关注一下→
以上是关于Golang 跨平台其实没那么简单的主要内容,如果未能解决你的问题,请参考以下文章