回答

收藏

如何减少编译文件的大小?

技术问答 技术问答 280 人阅读 | 0 人回复 | 2023-09-12

让我们比较 c 和 go: Hello_world.c :3 T& o5 }9 _2 e( {
    #includeint main(){     printf("Hello world!");}
    ( M1 O5 [0 g3 z" }: _! t, S$ }# D0 e
Hello_world.go:
2 y; x- B. e* s9 V
    package mainimport "fmt"func main(){     fmt.Printf("Hello world!")}: ]; ~& {7 ]. B6 f
编译两者:, z8 p6 Q  E$ U4 G  w
    $gcc Hello_world.c -o Hello_c $8g Hello_world.go -o Hello_go.8$8l Hello_go.8 -o Hello_go0 N* {1 P" S6 F
还有,这是什么?
: v4 R9 V# h  c, d, [5 j0 F
    $ls -ls... 5,4K 2010-10-05 11:09 Hello_c... 991K 2010-10-05 11:17 Hello_go9 C: j$ K/ S! @2 N! t
大约 1Mb 你好世界。你在跟我开玩笑吗?我做错了什么?
/ C5 y: T. g: z( W- D(仅去除 Hello_go -> 893K)& P/ K8 |5 o$ M& E
                                                                4 D+ a2 E1 j: P& D4 O! u4 c$ P; K6 B
    解决方案:                                                                  N8 V9 f* l% `. Y
                                                                如果使用的是基于 Unix 系统(如 Linux 或 Mac OSX),通过使用 可以尝试-w 标志构建可执行文件,删除可执行文件中包含的调试信息:
% C* k; y9 I0 J% A) p
    go build -ldflags "-w" prog.go9 e% @+ d" m0 z% s) f9 v4 r
大大降低了文件的大小。
; @" f4 N& I; h/ Z+ W1 h有关更多详细信息,请访问 GDB 页面:http : //golang.org/doc/gdb
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则