golang mac编译linux程序,Golang 在 Mac , Linux , Windows 下交叉编译详解

一、前言

Golang 支持交叉编译, 在一个平台上生成然后再另外一个平台去执行。 而且编译的工具【build】这个工具是Golang 内置的,不需要你去下载第三方的包啥的,贼方便~

二、 交叉编译

Mac 下编译

# 编译为 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 执行程序

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go

# 编译为 Windows 执行程序

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Windows 下编译

需要写一个批处理程序,在里面去设置,因为windows 下的 terminal 不支持 shell , 这跟 Mac 和 Linux下有点不同

# 编译为 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

三、参数说明

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

GOOS : 目标平台mac 对应  darwin

linux 对应 linux

windows 对应 windows

GOARCH :目标平台的体系架构【386,amd64,arm】, 目前市面上的个人电脑一般都是amd64架构的386 也称 x86 对应 32位操作系统

amd64 也称 x64 对应 64位操作系统

arm 这种架构一般用于嵌入式开发。 比如 Android , IOS , Win mobile , TIZEN 等

转载自:https://www.cnblogs.com/yinguohai/p/11543524.html (略有调整)

你可能感兴趣的:(golang,mac编译linux程序)