转自: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,效果还是很明显的,有需要的赶紧试试吧。


 

GitHub 加速计划 / li / linux-dash
10
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐