Golang交叉编译

交叉编译

简介

        交叉编译是指在一个平台编译另一个平台的代码,如:Windows上面编译Linux平台的代码。
        通常情况下某平台编译的代码只有该平台能够运行访问,若拷贝到其他平台可能会因为无法识别文件格式而无法运行。欲使代码能够在目标平台运行,只能专门编写面向目标平台的代码并在该平台编译,这虽然能够实现目的,但毫无疑问跨平台性肯定是非常差的。
        Golang本身支持根据文件名后缀如:xxx _linux_amd64.go这种格式表示linux平台amd64 CPU架构,当Go的环境变量(命令go env可查看和修改Go环境变量)设置为GOOS = linuxGOARCH = amd64时会选择上述后缀的文件进行编译,而类似 xxx _windows_amd64.go之类的其他平台或其他CPU架构的文件反而不会被编进二进制,不管当前代码在哪个平台,只要设置了Go环境变量,就能够编译出目标平台目标CPU架构的二进制,从而也能够在目标平台上面运行。Go的这种支持从代码和编译的层面体现出了良好的跨平台性,而非编译后的二进制体现出来的跨平台性。

示例

        创建两个带后缀分别为 _windows.amd64.go_linux.amd64.go的文件,两个文件创建在同一个目录下,且存在相同的全局常量

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值