GCC和ld如何删除未使用的C/C+符号?
我需要严格优化可执行文件的大小(ARM),我注意到在我当前的构建方案中(gcc + ld)未使用的符号不会被剥去。
ARM
gcc
ld
的用法arm-strip --strip-unneeded对于生成的可执行文件/库,不会更改可执行文件的输出大小。(我不知道为什么,也许根本不能).
arm-strip --strip-unneeded
会有什么办法(如果存在)修改我的建筑物管道,以便从结果文件中删除未使用的符号?
我甚至不会想到这一点,但我目前的嵌入式环境并不是很“强大”,甚至可以保存。500K离开2M结果是一个非常好的加载性能提高。
500K
2M
最新情况:
不幸的是gcc我使用的版本没有-dead-strip选项和-ffunction-sections... + --gc-sections为ld对结果的输出没有任何显着的差异。
-dead-strip
-ffunction-sections... + --gc-sections
我很震惊这甚至变成了一个问题,因为我确信gcc + ld应该自动删除未使用的符号(为什么它们必须保留它们?)。
gcc + ld
慕无忌1623718
如何通过js删除注释符号?
如何使用css删除空白处?
gcc 和 gcc -c有什么区别呢?
C++如何使用钩子函数?
相关分类