野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 37149|回复: 7

自定义函数没有引用出现警告问题

[复制链接]
发表于 2013-5-4 10:25:49 | 显示全部楼层 |阅读模式
    看了野火的库,再自己试着写一个库,发现了好多问题,首先函数定义以后如果没有引用的话就会提示警告,翻了几遍野火的库也没发现有什么特别的啊,为什么我的会出现警告呢?

    编译的时候会把所有的库文件链接上,导致生成的 hex 文件很大,百度了下说可以使用条件编译来解决这个问题,如果将整个文件定义在一个条件里的话仅仅引用一根函数其他函数还是会报警,如果对单个函数使用条件编译的话那么引用起来岂不是很麻烦?

    也没见到野火的库有条件编译啊,在野火的库里面自定义一些函数不引用的话也不会出现警告,请问下是怎么实现的呢?
回复

使用道具 举报

发表于 2013-5-4 15:40:41 | 显示全部楼层
你写的库是stm32的还是k60的?
回复 支持 反对

使用道具 举报

发表于 2013-5-4 15:50:45 | 显示全部楼层
函数定义以后如果没有引用的话就会提示警告 ,是不是用 了 static 来声明函数?

keil 里可以设置 不把没用的函数放进 hex 里的哦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-4 21:31:06 | 显示全部楼层
fire 发表于 2013-5-4 15:40
你写的库是stm32的还是k60的?

51的先写个简单的试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-4 21:33:38 | 显示全部楼层
山外メ雲ジ 发表于 2013-5-4 15:50
函数定义以后如果没有引用的话就会提示警告 ,是不是用 了 static 来声明函数?

keil 里可以设置 不把没 ...

没有刻意用static来定义,你说的那是怎么设置的呢?
回复 支持 反对

使用道具 举报

发表于 2013-5-4 21:45:14 | 显示全部楼层
似水流年、 发表于 2013-5-4 21:33
没有刻意用static来定义,你说的那是怎么设置的呢?

KeilC51中将工程中没有调用的函数不进行编译的方法:
把target options中的device页中选上"Use LX51 ...",然后在LX51 Misc页中的Misc Control中填入"REMOVEUNUSED",确认后重新编译即可自动去掉未调用的函数。


回复 支持 反对

使用道具 举报

发表于 2013-5-4 21:56:41 | 显示全部楼层
似水流年、 发表于 2013-5-4 21:33
没有刻意用static来定义,你说的那是怎么设置的呢?

或者 把target options中的C/C++页中勾上:One ELF Section per Function

QQ截图20130504215521.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-8 21:52:16 | 显示全部楼层
山外メ雲ジ 发表于 2013-5-4 21:45
KeilC51中将工程中没有调用的函数不进行编译的方法:
把target options中的device页中选上"Use LX51 ... ...

嗯,好了,极度感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-20 04:10 , Processed in 0.036475 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表