转自:https://studygolang.com/articles/16579
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
转自:https://www.jianshu.com/p/cd3c766b893c
压缩可执行文件
-
首先加上编译参数
-ldflags
$ go build -ldflags '-w -s' $ ls -lh -rwxr-xr-x 1 gangan staff 2.5M Aug 18 00:45 etcd-cli -rw-r--r-- 1 gangan staff 456B Aug 18 00:34 main.go
可以发现小了近1MB
-
使用upx压缩,Linux、Mac和Win都有,这里以Mac为例
$ brew install upx $ upx etcd-cli # 此处省略压缩时的打印... $ ls -lh -rwxr-xr-x 1 gangan staff 897K Aug 18 00:49 etcd-cli -rw-r--r-- 1 gangan staff 456B Aug 18 00:34 main.go
OK,可执行文件从3.4MB压缩到了897K,效果还是很明显的,有需要的赶紧试试吧。