go语言build多系统支持命令

释放双眼,带上耳机,听听看~!

go语言build多系统支持命令
go语言build平台支持编译打包脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
GO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w" -o xxxxx-windows-386-1.0.exe main.go

GO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o xxxxx-windows-amd64-1.0.exe main.go

GO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o xxxxx-linux-amd64-1.0 main.go

GO_ENABLED=0 GOOS=linux GOARCH=386 go build -o xxxxx-linux-386-1.0 main.go

GOARM=5 GOARCH=arm GOOS=linux go build -ldflags "-w -s" -o xxxxx-linux-armv5-1.0 main.go

GOARM=6 GOARCH=arm GOOS=linux go build -ldflags "-w -s" -o xxxxx-linux-armv6-1.0 main.go

GOARM=7 GOARCH=arm GOOS=linux go build -ldflags "-w -s" -o xxxxx-linux-armv7-1.0 main.go

GOARM=8 GOARCH=arm GOOS=linux go build -ldflags "-w -s" -o xxxxx-linux-armv8-1.0 main.go

xxxxx-darwin-amd64-2.10.1.gz
xxxxx-freebsd-386-2.10.1.gz
xxxxx-freebsd-amd64-2.10.1.gz
xxxxx-linux-386-2.10.1.gz
xxxxx-linux-amd64-2.10.1.gz
xxxxx-linux-armv5-2.10.1.gz
xxxxx-linux-armv6-2.10.1.gz
xxxxx-linux-armv7-2.10.1.gz
xxxxx-linux-armv8-2.10.1.gz
xxxxx-linux-mips-hardfloat-2.10.1.gz
xxxxx-linux-mips-softfloat-2.10.1.gz
xxxxx-linux-mips64-2.10.1.gz
xxxxx-linux-mips64le-2.10.1.gz
xxxxx-linux-mipsle-hardfloat-2.10.1.gz
xxxxx-linux-mipsle-softfloat-2.10.1.gz
xxxxx-windows-386-2.10.1.zip
xxxxx-windows-amd64-2.10.1.zip
Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。

1、Mac下编译Linux, Windows平台的64位可执行程序:
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
2、Linux下编译Mac, Windows平台的64位可执行程序:
$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
3、Windows下编译Mac, Linux平台的64位可执行程序:
$ SET CGO_ENABLED=0SET GOOS=darwin3 SET GOARCH=amd64 go build test.go
$ SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build test.go
注:如果编译web等工程项目,直接cd到工程目录下直接执行以上命令

GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows
GOARCH:目标可执行程序操作系统构架,包括 386,amd64,arm

GOOS:目标平台的操作系统(darwin、freebsd、linux、windows) GOARCH:目标平台的体系架构(386、amd64、arm) 交叉编译不支持 CGO 所以要禁用它

1
2
3
4
5
6
7
https://github.com/golang/go/blob/master/src/go/build/syslist.go#L8:31

package build

const goosList = "android darwin dragonfly freebsd js linux nacl netbsd openbsd plan9 solaris windows zos "

const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le

给TA打赏
共{{data.count}}人
人已打赏
安全工具

你写的代码被GitHub埋到北极了

2020-7-20 18:22:45

安全工具

疫情远程办公开源解决方案

2022-1-16 9:48:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索