压缩Go可执行程序文件体积

go语言程序默认使用静态编译,生成的可执行程序不依赖任何动态链接库,可以任意部署到各种运行环境,不用担心依赖库的版本问题。

因为go语言是静态编译的,而C的编译(比如gcc编译器)都是动态链接库形式编译的,所以导致了go生成的可执行文件比C语言生的可执行程序稍微大一点的问题。

解决这个问题的办法如下:

执行go build 时加上-ldflags "-s -w"

  • -s的作用是去掉符号信息
  • -w的作用是去掉调试信息

参考链接

Shrink your Go binaries with this one weird trick