我需要优化我的可执行文件的大小严重(ARM
开发)和
我注意到,在我当前的构建方案(gcc
+ ld
)中,未使用的符号没有被删除。
对结果可执行文件/库使用 arm-strip --strip-unneeded
不会改变可执行文件 (我不知道为什么,也许就是不能)的输出大小。
(如果存在的话)如何修改我的构建管道,以便从结果文件中去除未使用的符号?
我甚至不会想到这一点,但我目前的嵌入式环境不是非常“强大”和
将 500K
从 2M
中保存下来,会带来非常好的加载性能提升。
更新:
不幸的是,我当前使用的 gcc
版本没有 -dead-strip
选项,而 ld
的 -ffunction-sections... + --gc-sections
对于结果输出没有任何显著差异。
我感到震惊,这甚至成为一个问题,因为我确信 gcc + ld
应该自动删除未使用的符号(为什么他们甚至必须保留它们?).