KEIL MDK中国版如何避免未调用的库函数链接到目标代码中?
问题类别:ARM软件工具 > Keil MDK | 浏览次数:8948 |
发布日期:2012/4/23 17:07:08 | 文章来源:完美体育·(中国)手机网页版科技 |
回复日期:2020/12/20 9:58:44 |
环境说明
KEIL MDK中国版3.05 及以上分析描述
项目从IAR转到RealView MDK中国版发现HEX文件大了很多,所有未调用的函数都链接进去了(添加的库文件,其中很多函数都没用),有没有什么好办法。问题解答
问题分析:
在新版的MDK编译和链接工具中加入了如下功能:
1、链接器的反馈:
链接器会输出一系列的未使用的函数
armlink --feedback unused.txt …
2、编译器会使用这些信息:
armcc --feedback unused.txt …
从而,每个在反馈文件中列出的函数都会被单独编译为一个ELF段,从而可以在接下来的链接阶段被删除.
详细图解如下:
链接图解.rar
问题解答:
可以通过设置Options for Target的C/C++选项中解决.
操作步骤:打开工程设置选项
Options for Target---C/C++项---把下面的One Elf Section per Function选上,然后重新编译就可以了