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

Go 编译代码-分平台编译

要针对 Mac, Linux, 和 Windows 编译单个 main.go 文件,可以使用 Go 的交叉编译功能,通过设置环境变量 GOOSGOARCH 来指定目标操作系统和架构。

编译命令

在项目目录下执行以下命令:

1. MacOS 编译
GOOS=darwin GOARCH=amd64 go build -o main_mac main.go

或对于 Apple Silicon 芯片 (M1/M2):

GOOS=darwin GOARCH=arm64 go build -o main_mac_arm main.go
2. Linux 编译
GOOS=linux GOARCH=amd64 go build -o main_linux main.go
3. Windows 编译
GOOS=windows GOARCH=amd64 go build -o main_windows.exe main.go

说明

  1. 输出文件名称
    • -o 参数指定输出文件的名称。例如 main_mac 表示 MacOS 平台的二进制文件。
    • Windows 文件通常使用 .exe 扩展名。
  1. 架构支持
    • GOARCH=amd64 表示 64 位架构。如果需要支持 32 位架构,可以改为 GOARCH=386
  1. 交叉编译环境
    • Go 自带交叉编译支持,运行这些命令不需要安装额外工具。
  1. 验证编译环境
    • 如果需要查看当前支持的所有目标操作系统和架构组合,可以运行:
go tool dist list

示例:批量编译脚本

一个简单的 shell 脚本 build_all.sh,一键生成所有目标文件:

#!/bin/bash

echo "Building for MacOS (amd64)..."
GOOS=darwin GOARCH=amd64 go build -o main_mac main.go

echo "Building for MacOS (Apple Silicon)..."
GOOS=darwin GOARCH=arm64 go build -o main_mac_arm main.go

echo "Building for Linux (amd64)..."
GOOS=linux GOARCH=amd64 go build -o main_linux main.go

echo "Building for Windows (amd64)..."
GOOS=windows GOARCH=amd64 go build -o main_windows.exe main.go

echo "Builds completed!"

http://www.kler.cn/a/401918.html

相关文章:

  • vscode 快捷键生成代码
  • 【Pythonr入门第二讲】你好,世界
  • webpack配置
  • 【Redis】使用redis实现登录校验功能
  • 如何在C#中处理必盈接口返回的股票数据?
  • 解决 Spring Boot 中 `Ambiguous mapping. Cannot map ‘xxxController‘ method` 错误
  • Kubernetes配置管理ConfigMap、Secret
  • 51单片机基础01 单片机最小系统
  • freemarker 读取template.xml ,通过response 输出文件,解决中文乱码问题
  • 【大选】2024年美国总统选举数据分析可视化
  • HbuilderX的使用
  • 从零开始学习JVM(九)- 垃圾收集器
  • 【逐行注释】MATLAB的EKF和UKF例程与详细注释|附下载链接
  • LDR6500:C to DP与DP to C视频转接线双向方案
  • RTK技术算法概述!
  • 【Vue笔记】基于vue3 + element-plus + el-dialog封装一个自定义的dialog弹出窗口组件
  • 车轮上的科技:Spring Boot汽车新闻集散地
  • 线性代数[ 矩阵 矩阵的初等变换 线性方程组 ]第二三章
  • LeetCode74. 搜索二维矩阵(2024冬季每日一题 6)
  • ES5 (SM-SR-eUICC) 接口上的 OTA 通信笔记
  • 多目标优化算法:多目标鳗鱼和石斑鱼优化算法(MOEGO)求解DTLZ1-DTLZ9,提供完整MATLAB代码
  • mysql 的乐观锁和 mvcc 是一回事吗
  • Spring Security 中的 UserDetailsService(获取用户详细信息)
  • WebSocket简易聊天室实现(有详细解释)
  • 使用Python语言编写一个简单的网页爬虫,从网站上抓取指定关键词的新闻标题和链接。
  • 简单爬虫的实现