当前位置: 首页 > news >正文

golang 在 Mac、Linux、Window 下交叉编译

目录

  • 交叉编译
    • 参数说明
      • CGO_ENABLED
      • GOOS : 目标操作系统【darwin、linux、windows】
      • GOARCH :目标架构【386、amd64、arm】
    • Mac 下编译,Linux / Windows 下执行
    • Linux 下编译,Mac / Windows 下执行
    • Windows 下编译,Mac / Linux 下执行

Golang的交叉编译是指将Go程序从一个操作系统和架构编译为另一个操作系统和架构的过程。
也就是说我们可以在一个开发环境中编写代码,然后可以为多个不同的目标平台生成可执行文件。

交叉编译

参数说明

CGO_ENABLED

CGO 表示golang中的工具,CGO_ENABLED 表示CGO禁用,交叉编译中不能使用CGO

GOOS : 目标操作系统【darwin、linux、windows】

  • mac:darwin
  • linux:linux
  • windows:windows

GOARCH :目标架构【386、amd64、arm】

  • 386:也称 x86,对应 32 位操作系统
  • amd64:也称 x64,对应 64 位操作系统
  • arm:这种架构一般用于嵌入式开发。比如 Android、IOS、Win mobile、TIZEN 等

Mac 下编译,Linux / Windows 下执行

# Linux 下执行
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
# Windows 下执行
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Linux 下编译,Mac / Windows 下执行

# Mac 下执行
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
# Windows 下执行
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Windows 下编译,Mac / Linux 下执行

需要写一个批处理程序,在里面去设置,因为 Windows 下的 terminal 不支持shell

# Mac 下执行
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
# Linux 下执行
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
http://www.lryc.cn/news/197254.html

相关文章:

  • 半导体可靠性测试方法都有哪些?
  • 百度智能云发布AI原生应用工作台,为大模型落地五类需求提供最优
  • flutter 手机卡住,需要等待,主线程被占用
  • 微信小程序 onLoad(option) 方法
  • Vue3 实现文件预览 Word Excel pdf 图片 视频等格式 大全!!!!
  • GaussDB for openGauss部署形态
  • 6.MidBook项目经验之前端nuxt优化SEO和手机登录,微信登录
  • NR SRS power control
  • C++(boost):通过boost::process::child同步调用其他程序
  • 【经验分享】解决vscode编码问题
  • 核酸管外观缺陷检测(一)
  • NodeJS @kubernetes/client-node连接到kubernetes集群的方法
  • 【基于Kmeans、Kmeans++和二分K均值算法的图像分割】数据挖掘实验三
  • 深入理解Java CompletableFuture并发编程模型
  • TensorFlow手动加载数据集(以mnist为例)
  • C++项目实战——基于多设计模式下的同步异步日志系统(总集篇)
  • 杨辉三角按列求和
  • C复习-语句
  • [Python进阶] 操纵键盘:PyAutoGUI
  • jdbc快速开始
  • C语言中static关键字用法
  • STM32-LCD液晶显示
  • GraphQL 查询:一个全面指南
  • 快速自动化处理JavaScript渲染页面的方法
  • [计算机提升] 系统及用户操作
  • Linux篇 四、Linux修改用户名
  • 【Element-plus】如何让滚动条永远在最底部(支持在线演示)
  • 解决方案-LBS用户位置Redis-GEO附近人/店铺
  • springboot+html实现简单注册登录
  • ESP32网络开发实例-Web控制8路继电器