GCC和ld如何删除未使用的C/C+符号?我需要严格优化可执行文件的大小(ARM),我注意到在我当前的构建方案中(gcc + ld)未使用的符号不会被剥去。的用法arm-strip --strip-unneeded对于生成的可执行文件/库,不会更改可执行文件的输出大小。(我不知道为什么,也许根本不能).会有什么办法(如果存在)修改我的建筑物管道,以便从结果文件中删除未使用的符号?我甚至不会想到这一点,但我目前的嵌入式环境并不是很“强大”,甚至可以保存。500K离开2M结果是一个非常好的加载性能提高。最新情况:不幸的是gcc我使用的版本没有-dead-strip选项和-ffunction-sections... + --gc-sections为ld对结果的输出没有任何显着的差异。我很震惊这甚至变成了一个问题,因为我确信gcc + ld应该自动删除未使用的符号(为什么它们必须保留它们?)。
3 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
-ffunction-sections
-fdata-sections
--gc-sections
- 3 回答
- 0 关注
- 1155 浏览
添加回答
举报
0/150
提交
取消