Golang go build 不同系统下的可执行文件

Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能

 go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件

//查看环境变量
go env

 *注意*

两个重要的环境变量GOOS和GOARCH

GOOS指目标操作系统:

darwin

freebsd

linux

windows

android

dragonfly

netbsd

openbsd

plan9

solaris

GOARCH指的是目标处理器的架构:

arm

arm64

386

amd64

ppc64

ppc64le

mips64

mips64le

s390x

GOOS和GOARCH有效组合,支持生成多种可执行程序  https://golang.org/doc/install/source#environment

The valid combinations of $GOOS and $GOARCH are:

$GOOS	$GOARCH
aix	ppc64
android	386
android	amd64
android	arm
android	arm64
darwin	amd64
darwin	arm64
dragonfly	amd64
freebsd	386
freebsd	amd64
freebsd	arm
illumos	amd64
js	wasm
linux	386
linux	amd64
linux	arm
linux	arm64
linux	ppc64
linux	ppc64le
linux	mips
linux	mipsle
linux	mips64
linux	mips64le
linux	s390x
netbsd	386
netbsd	amd64
netbsd	arm
openbsd	386
openbsd	amd64
openbsd	arm
openbsd	arm64
plan9	386
plan9	amd64
plan9	arm
solaris	amd64
windows	386
windows	amd64

Mac下编译Linux, Windows平台的64位可执行程序:

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

Linux下编译Mac, Windows平台的64位可执行程序:

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

Windows下编译Mac, Linux平台的64位可执行程序:

$ SET CGO_ENABLED=0  SET GOOS=darwin3 SET GOARCH=amd64 go build main.go
$ SET CGO_ENABLED=0  SET GOOS=linux   SET GOARCH=amd64 go build main.go
 

猜你喜欢

转载自blog.csdn.net/feikillyou/article/details/110367843