打印

keil4如何在编译时不编译未调用的函数?

[复制链接]
1783|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sheriff|  楼主 | 2013-10-31 11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前用IAR ewarm比较多, 印象中ewarm是不编译未调用的函数的。最近手上有一个用keil4编的arm单片机的工程,代码好大,很多函数没调用,也编译进去了,如何在编译的时候不编译这些没调用的函数?

相关帖子

沙发
McuPlayer| | 2013-10-31 12:18 | 只看该作者
会全部编译的,
在链接阶段,未调用的函数,会自动被优化掉

使用特权

评论回复
板凳
ayb_ice| | 2013-10-31 13:38 | 只看该作者
不编译你怎么知道没有调用呢,不信你故意将某个没有调用的函数写错试试

实际情况如LS描述

使用特权

评论回复
地板
sheriff|  楼主 | 2013-10-31 13:46 | 只看该作者
可能是我描述的有问题。我想达到的实际效果就是,没调用的函数不占用生成的hex或bin文件。现在我把main的主循环里的内容全注释掉,编译生成的bin文件仍然有近50k,如何解决这个问题?

使用特权

评论回复
5
chenbb8| | 2013-10-31 13:49 | 只看该作者
LS两位在咬文嚼字,LZ的意思是不链接没有调用的函数吧。
C/C++ -- One ELF Section per Function

使用特权

评论回复
6
sheriff|  楼主 | 2013-10-31 13:55 | 只看该作者
回LS,按阁下的方法做了,效果不是很明显,bin小了1K左右

使用特权

评论回复
7
ayb_ice| | 2013-10-31 14:05 | 只看该作者
本帖最后由 ayb_ice 于 2013-10-31 14:07 编辑

优化级别要提高吧

KEIl好象也会不连接未调用的函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

136

帖子

1

粉丝