Golang支持交叉编译,在一个平台上生成另一个平台的可执行程序。本教程为大家介绍golang的交叉编译。

一、何为交叉编译

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

二、交叉编译前的准备

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

安装TDM-GCC

下载地址:http://tdm-gcc.tdragon.net/download

安装完成后添加TDM-GCC中bin文件夹进环境变量。

三、简述交叉编译

1.jpg

其实保存上面一幅图即可,需记住三个参数,GOOS(Go的目标系统),GOARCH(GO的目标架构)。

设置完成后通过go env查看当前配置。

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

四、实练

1. 默认编译

2.jpg

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

2.交叉编译一个Arm+Linux

3.jpg

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

4.jpg

更多golang知识请关注PHP中文网golang教程栏目。

更多相关文章

  1. 分布式事务 TCC-Transaction 源码分析 —— 运维平台
  2. 分享一些 Windows 平台上的神器
  3. 最佳实践【二】从 0 开始,用 flask+mongodb 打造分布式服务器监控
  4. 【一】从0开始,用flask+mongo打造分布式服务器监控平台
  5. K8s 平台可以如何处理 Pod 预授权问题
  6. Unity平台 | 快速集成华为AGC AppLinking服务
  7. 使用内存NewSQL数据平台来处理实时数据流的三个好处
  8. 尝鲜!微软首个AI量化投资开源平台Qlib上手体验!

随机推荐

  1. php获取数组中最后一个元素的方法
  2. web API接口及restful规范详解
  3. phpexcel导入大数据内存溢出的解决方法有
  4. 如何设定php简写功能
  5. php如何获取url的扩展名
  6. 用最快的速度在 PHP 语言下实现验证码功
  7. php文件包含漏洞原理浅探
  8. php中对static关键字的理解
  9. 用laravel+Swoole实现websocket主动消息
  10. php laravel请求处理管道(装饰者模式)