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的损失就有点大了。