1
2
3
4
| ### linux 64bit
GOOS=linux GOARCH=amd64 go build .
# 编译到 windows 64bit
GOOS=windows GOARCH=amd64 go build
|
linux 64bit, windows编译 Linux 64bit
1
2
3
4
| sET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build
|
arm
1
| gOOS=linux GOARCH=arm go build .
|
1
2
3
| gOOS=linux GOARCH=mipsle go build
env CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o ./release/${name}_mips_sf .
|
交叉编译
Go是一门编译型语言,所以在不同平台上,需要编译生成不同格式的二进制包。
由于Go 1.5对跨平台编译有了一些改进,包括统一了编译器、链接器等。
编译时候只需要指定两个参数:GOOS和GOARCH即可。
示例:
编译到 linux 64bit
或者可以使用 -o 选项指定生成二进制文件名字
$ GOOS=linux GOARCH=amd64 go build -o app.linux
编译到 linux 32bit
$ GOOS=linux GOARCH=386 go build
编译到 windows 32bit
$ GOOS=windows GOARCH=386 go build
编译到 Mac OS X 64bit
$ GOOS=darwin GOARCH=amd64 go build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| android arm
darwin 386
darwin amd64
darwin arm
darwin arm64
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
linux arm64
linux ppc64
linux ppc64le
linux mips
linux mipsle
linux mips64
linux mips64le
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
openbsd arm
plan9 386
plan9 amd64
solaris amd64
windows 386
windows amd64
|
http://dmdgeeker.com/goBook/docs/ch01/cross_compile.html