我想知道是否有办法删除映射文件中列出的所有未使用的函数,用于用 C 开发的嵌入式项目并使用 IAR 嵌入式工作台 for ARM IDE,它使用自己的编译器和链接器:
IAR C/C++ Compiler for ARM 8.30
IAR ELF Linker for ARM 8.30
IAR Assembler for ARM 8.30
我注意到并非地图文件中列出的所有函数都是在运行时实际使用的已使用函数,是否有任何优化方法可以删除所有未使用的函数?
例如,项目中使用了第三个库,FuncA()
它是其中可能有一个 switch case 的一部分,并且对于每种情况,调用一个不同的静态函数,比如说FuncA1()
, FuncA2()
, ... FuncAn()
。我们将根据代码和用法输入每个案例,FuncA()
因此很明显并非所有的FuncA1()
, FuncA2()
, ...FuncAn()
函数都会在项目中被调用,但是,它们都列在映射文件中。
是否可以从地图文件中删除此类功能?如果是怎么办?