为什么用Keil编译的hex文件这么大

刚刚接触STM32的开发,发现用RVMDK编译生成的hex文件比用EWARM生成的大很多,同一个工程,前者生成的文件有31K,后者只有6K。原因在哪里?

IAR编译时,没有调用的函数是不会编译到hex文件中的,Keil是不是把没有调用的函数编译到hex文件中去了呢?真实情况就是这样。

作为这么一款优秀的开发工具,Keil不会这么白痴吧。

实际上是,Keil提供一个选项,由用户决定是否把没有调用的函数编译到目标文件中去。

设置方法如下:

Options ->  C/C++ -> Language/Code Generation  勾选 “One ELF Section per Function”

试试看吧。

感谢同事,呵呵。

发表评论

电子邮件地址不会被公开。 必填项已用*标注