我需要严格优化可执行文件的大小(ARM开发),并且我注意到在我当前的构建方案(gcc+ ld)中,未使用的符号没有被剥离。
arm-strip --strip-unneeded所产生的可执行文件/库的用法不会更改可执行文件的输出大小(我不知道为什么,也许根本无法更改)。
修改我的构建管道的方式(如果存在)是什么,以便从生成的文件中删除未使用的符号?
我什至不会想到这一点,但是我当前的嵌入式环境不是非常“强大”,并且甚至节省500K了2M结果,从而极大地提高了加载性能。
更新:
不幸的是,目前的gcc版本我使用不具备-dead-strip选项和-ffunction-sections... + --gc-sections用于ld没有给出结果输出任何显著差异。
我感到震惊的是,这甚至成为了问题,因为我确定gcc + ld应该自动剥离未使用的符号(为什么还要保留它们?)。
boost库的现有应用程序,则.exe由于我当前嵌入式运行时的规范,结果文件包含许多未使用的目标文件,启动10mb应用程序所花费的时间比例如启动500k应用程序要长得多。