golang交叉编译和条件编译的实际应用

什么是交叉编译

先给出维基百科百度百科解释(tips:维基百科只有交叉编译器的解释)

维基百科

交叉编译器(英语:Cross compiler)是指一个在某个系统平台下可以产生另一个系统平台的可执行文件的编译器。交叉编译器在目标系统平台(开发出来的应用程序序所运行的平台)难以或不容易编译时非常有用。

百度百科

交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。

虽然维基百科上只有交叉编译器的解释,但是结合百度百科来看,其实意思是一致的,就是可以在A平台编译出B或者C平台的可执行程序

所以交叉编译是在当前基础平台(开发者使用的环境)编译出在分发平台(运行环境)能运行的程序的解决方案。

有时候我们在开发一个项目的时候,目标平台资源并没有准备好,比如在windows开发,但是运行平台是linux,而linux服务器还没购买,或者linux是并不允许安装编译器等等,这时候我们需要在开发机编译出目标机的运行程序,那么交叉编译将变得非常有用。

什么是条件编译

维基百科

百度百科

条件编译允许只编译源文件中满足条件的程序 段,使生成的目标程序较短,从而减少了内存的开销,并提高程序的效率,可以按不同的 条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。 [2]
另外,条件编译是为了让程序在各种不同的软硬件环境下都以运行。即,提高了程序的可移植性和灵活性。

所谓的条件编译,就是在指定的条件下编译满足条件的源码文件或者代码段。以达到适配指定的运行环境。实际使用中可以用于调试或者发布(区分开发调试环境和线上部署环境)。

golang中使用交叉编译

我们知道golang一份代码可以编译出在不同系统和cpu架构运行的二进制文件。go也提供了很多环境变量,我们可以设置环境变量的值,来编译不同目标平台。

GOOS 目标平台, GOARCH目标架构

# 编译目标平台linux 64位
GOOS=linux GOARCH=amd64 go build main.go

# 编译目标平台windows 64位
GOOS=windows GOARCH=amd64 go build main.go
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值