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

window,linux,
darwin,android,ios

提供对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

希望大家能从本期分享学到有价值的东西。


愿我们在Go 语言的学习之路上   从此结伴而行


关注一下→








以上是关于Golang 跨平台其实没那么简单的主要内容,如果未能解决你的问题,请参考以下文章

Web登录其实没那么简单

Web登录其实没那么简单

线程的生命周期,真的没那么简单

java IO文件操作简单基础入门例子,IO流其实没那么难

设计一个虚拟Dom,其实没那么难!

阿里云高级专家三年实战复盘 | 性能测试没那么简单