多语言展示
当前在线:473今日阅读:145今日分享:20

如何减小c/c++语言程序编译后可执行文件大小

使用gcc/g++编译程序,通常我们关注编译是否成功,甚至大多数时候编译告警也抛在一旁。但是,在嵌入式等内存稀缺平台,发布程序时需要尽可能减小编译后程序的大小。我们又该如何优化编译程序大小呢?
工具/原料
1

gcc/g++编译器

2

notepad++编辑器

方法/步骤
1

为了说明减小编译程序大小,我们编写一个简单的程序代码。

2

执行编译后,我们看一下程序的内存占用情况

3

查看gcc/g++编译命令,我们会发现它们后面还可以加上一大堆编译选项。如通常-i选项(设置头文件查找路径) -L(设置动态库查找路径)等。首先:不要添加-g选项,忽略调试信息。在编译时,如果添加-g选项,则程序为了调试会添加其他消息,增加可执行程序大小

4

增加使用-Os等编译选项。gcc/g++默认-O0,不对程序进行优化。Os选项会对程序大小进行优化。

5

最后,使用strip命令可以去除可执行文件中的一些符号表、调试符号表信息,从而减小程序大小。

6

gcc/g++编译器选项比较多,网上还有介绍其他方法,笔者也未进行验证,这里也一并列出,供读者参考。

注意事项
1

添加编译选项优化程序大小,可能会引起程序执行过程中某些使用到的特性功能

2

优化程序后,会影响gdb调试的使用

推荐信息