给golang程序进行一次廋身

| 分类 golang  | 标签 golang  程序 

golang语言是使用静态编译,但是由golang编译出来的程序仔细一点的话会发现有点大,我们需要对它进行一次廋身
举个例子这个文件hello.go
正常编译后的大小

go build hello.go  

正常编译大小
添加点参数就不一样了

go build -ldflags "-s -w" hello.go 

加参数后编译大小

命令解析

-s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果, 
-w去掉DWARF调试信息,得到的程序就不能用gdb调试了。 
-s和-w也可以分开使用,一般来说如果不打算用gdb调试, 
-w基本没啥损失。-s的损失就有点大了。

上一篇     下一篇