Golang交叉编译(跨平台编译)的使用

 更新时间:2022年08月08日 08:40:03   作者:x024  
本文主要介绍了Golang交叉编译(跨平台编译)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、何为交叉编译

简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。

二、交叉编译前的准备

本文只介绍Windows平台下的Golang交叉编译

安装TDM-GCC

下载地址:http://tdm-gcc.tdragon.net/download
安装完成后添加TDM-GCC中bin文件夹进环境变量。

三、简述交叉编译

Golang交叉编译


其实保存上面一幅图即可,需记住三个参数,GOOS(Go的目标系统),GOARCH(GO的目标架构)。
设置完成后通过go env查看当前配置。

注意:在不同的命令提示符(CMD)中或关闭重新打开命令提示符,所设置的GOOS和GOARCH是不互通的。也就是可以把GOOS和GOARCH理解为局部变量,不会保存。Golang默认每次build的都是当前系统和架构。

四、实练

1. 默认编译

Golang交叉编译

当前是使用默认配置编译了一个Windows平台下的exe可执行文件,同样我们设置GOOS和GOARCH后再编译看看。

2.交叉编译一个Arm+Linux

Golang交叉编译

在Windows PowerShell中SET 命令似乎无效,有时间再详查什么原因,所以这一步用了CMD。
设置完后同样再运行go bulid即可,就可以得到一个无后缀的linux可执行文件。

Golang交叉编译

小总结

记住3句代码,及其支持的系统。这个在第三节已经给出。

SET GOOS=xxxSET GOARCH=xxxgo env

到此这篇关于Golang交叉编译(跨平台编译)的使用的文章就介绍到这了,更多相关Golang 交叉编译内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang接口实现调用修改(值接收者指针接收者)场景详解

    golang接口实现调用修改(值接收者指针接收者)场景详解

    这篇文章主要为大家介绍了golang接口实现调用修改值接收者指针接收者示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Go数据结构之HeapMap实现指定Key删除堆

    Go数据结构之HeapMap实现指定Key删除堆

    这篇文章主要给大家介绍了Go语言数据结构之HeapMap实现指定Key删除堆,通过使用Go语言中的container/heap包,我们可以轻松地实现一个优先级队列,文中有详细的代码示例讲解,需要的朋友可以参考下
    2023-07-07
  • 15个Golang中时间处理的实用函数

    15个Golang中时间处理的实用函数

    在Go编程中,处理日期和时间是一项常见任务,涉及到精确性和灵活性,本文将介绍一系列实用函数,它们充当time包的包装器,需要的可以参考下
    2024-01-01
  • GO语言开发环境搭建过程图文详解

    GO语言开发环境搭建过程图文详解

    这篇文章主要介绍了GO语言开发环境搭建过程图文详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Go GORM 事务详细介绍

    Go GORM 事务详细介绍

    这篇文章主要介绍了Go GORM事务详细介绍,GORM 会在事务里执行写入操作创建、更新、删除,具体详细介绍需要的朋友可以参考下面文章的简单介绍
    2022-07-07
  • Golang变量直接初始化的方法详解

    Golang变量直接初始化的方法详解

    在 Go 语言中,我们常用的数据结构有在Go语言中,你可以初始化不同的数据结构,例如数组、切片、结构体、指针、map等,本文将给大家介绍一下Golang变量直接初始化的方法,需要的朋友可以参考下
    2023-08-08
  • Go语言实现配置热加载的方法分享

    Go语言实现配置热加载的方法分享

    web项目,经常需要热启动各种各样的配置信息,一旦这些服务发生变更,我们需要重新启动web server,以使配置生效,实现配置热加载,本文为大家整理了几个方法实现这个需求,需要的可以参考下
    2023-05-05
  • 详解Golang Map中的key为什么是无序的

    详解Golang Map中的key为什么是无序的

    本文主要介绍了Golang Map中的key为什么是无序的,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • golang xorm 自定义日志记录器之使用zap实现日志输出、切割日志(最新)

    golang xorm 自定义日志记录器之使用zap实现日志输出、切割日志(最新)

    这篇文章主要介绍了golang xorm 自定义日志记录器,使用zap实现日志输出、切割日志,包括连接postgresql数据库的操作方法及 zap日志工具 ,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Golang继承模拟实例详解

    Golang继承模拟实例详解

    这篇文章主要介绍了Golang继承模拟方法,结合实例形式分析了Go语言实现继承的原理与相关操作技巧,需要的朋友可以参考下
    2016-07-07

最新评论