编译过程添加
-ffunction-sections和-fdata-sections
链接过程添加选项
-Wl,--gc-sections
可以使得编译出来的进程去除无用函数和全局变量符号,减少进程大小。
1. 编译过程中添加-ffunction-sections和-fdata-sections会在输出文件object中给每个函数和全局变量控制在一个section中并以对应的函数名或全局变量名命名,
2. 链接过程中-Wl,–gc-sections,因为链接时查找符号是以section为单元进行引用的,对于没有引用到的符号,对应的section也不会引进来,故排除掉了无用的函数和全局变更,从而减少可执行文件的大小。
这些选项对-g和gprof会有些影响
参考文件
【优化改进】Linux进程文件瘦身——Linux环境验证