go build -ldflags "-s -w" (go install类似)
解释一下参数的意思:
-ldflags: 表示将后面的参数传给连接器(5/6/8l)
-s:去掉符号信息(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果)
-w:去掉DWARF调试信息。得到的程序就不能用gdb调试了
如下demo.go
E:\go build demo.go //编译后为1163 K
E:\go build -ldflags "-s -w" demo.go//编译后为591K
-s和-w也可以分开使用,一般来说如果不打算用gdb调试,-w基本没啥损失。
-s的损失就有点大了。
解释一下参数的意思:
-ldflags: 表示将后面的参数传给连接器(5/6/8l)
-s:去掉符号信息(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果)
-w:去掉DWARF调试信息。得到的程序就不能用gdb调试了
如下demo.go
[AppleScript] 纯文本查看 复制代码
1
2
3
4
5
|
package
main import ( "fmt" ) func
main ( ) { fmt.Print ( "hellow!" ) } |
E:\go build demo.go //编译后为1163 K
E:\go build -ldflags "-s -w" demo.go//编译后为591K
-s和-w也可以分开使用,一般来说如果不打算用gdb调试,-w基本没啥损失。
-s的损失就有点大了。
有疑问加站长微信联系(非本文作者)