打印
[STM32F1]

MDK5.14中怎样避免xx was set but never used的编译警告?

[复制链接]
3197|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 insect2006 于 2015-6-3 15:02 编辑

总是提示定义但未使用的编译警告,但是我的变量明显是有意义且在特定情况下会使用的
加volatile 修饰也不行,请问大伙有啥解决办法么?

2.jpg (65.57 KB )

2.jpg
沙发
insect2006|  楼主 | 2015-6-3 15:00 | 只看该作者
每次编译后都弹出这类警告非常烦人,但是我有不可能把局部变量改成全局变量,那样对程序的通用性不好。

使用特权

评论回复
板凳
icecut| | 2015-6-3 15:55 | 只看该作者
lz 的程序代码非常烦编译器....

使用特权

评论回复
地板
mmuuss586| | 2015-6-3 18:52 | 只看该作者
这好像没法设置的;
5.0的也是一样的;

使用特权

评论回复
5
diweo| | 2015-6-3 19:43 | 只看该作者
你可以
rssi=rssi;
虽然这一行没什么实际用途,但是编译器不会再烦你。

使用特权

评论回复
6
insect2006|  楼主 | 2015-6-3 19:47 | 只看该作者
diweo 发表于 2015-6-3 19:43
你可以
rssi=rssi;
虽然这一行没什么实际用途,但是编译器不会再烦你。

那么函数呢?封装好的函数但是没被引用也一样弹出警告啊

3.jpg (107.58 KB )

3.jpg

使用特权

评论回复
7
diweo| | 2015-6-3 20:45 | 只看该作者
本帖最后由 diweo 于 2015-6-3 20:49 编辑
insect2006 发表于 2015-6-3 19:47
那么函数呢?封装好的函数但是没被引用也一样弹出警告啊
没怎么碰到过你这情况。
专门看了一下帮助文件,发现只要加下面一行就可以了。
#pragma diag_suppress 177
不管变量还是函数名,都不会警告没有引用。
如果要屏蔽别的警告,应该不用我多说吧,:lol

使用特权

评论回复
8
HORSE7812| | 2015-6-4 09:12 | 只看该作者
mark

使用特权

评论回复
9
```| | 2015-6-4 12:42 | 只看该作者
也可以在C/C++配置选项那个Tab页里加入屏蔽控制。
具体写法参见Keil Help中armcc的command line option。

使用特权

评论回复
10
wowow| | 2015-6-4 13:09 | 只看该作者
本帖最后由 wowow 于 2015-6-4 13:11 编辑

顶楼说的变量肯定是没用到才会报这个warning,你说的特定条件下,是指条件编译了吧?如果有条件编译,变量定义的地方也一起条件编译就行了。
函数没用到的最好是用feedback文件,这样没有用到的函数不会被链接进去,也就不会报warning了。见linker command line option里的--feedback选项。
warning虽然不是大错,但也最好不要屏蔽掉,而是用“合法"的手段消除。

使用特权

评论回复
11
cornrn| | 2016-3-4 23:09 | 只看该作者
用下面这些命令来控制,ARM都有详细说明

捕获.JPG (226.7 KB )

捕获.JPG

捕获3.JPG (396.95 KB )

捕获3.JPG

使用特权

评论回复
12
iyansui| | 2017-11-4 13:43 | 只看该作者
diweo 发表于 2015-6-3 19:43
你可以
rssi=rssi;
虽然这一行没什么实际用途,但是编译器不会再烦你。

好厉害的感觉。。。确实有用

使用特权

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

本版积分规则

25

主题

146

帖子

1

粉丝