最近发现工程的warning有点多,好几十个,一看还大多数是这种:

warning:  #1-D: last line of file ends without a newline

warning:  #550-D: variable "xx" was set but never used

第一个我的文件末尾是有空行的,但是它也报错了,不知道啥原因。
第二个,有些寄存器清零的动作是通过读寄存器的值来清零的,我就定义了一个局部变量,然后keil就说我定义了没用,这。。。。

其他的警告我都认了,这两个看着很无奈,又有强迫症,看着很不爽啊,现在就来看看怎么去除吧。

先说下环境,KEIL 5,ARM M4 内核

打开keil的帮助文档,help->uVision help
然后搜索#550-D,就是上面的第二种警告,如图:
这里写图片描述

这儿我们打开倒数第二项,suppress这行,由文档可知,这个语句的作用是禁止某一类warning,感觉一下有了精神。
那我们要禁止上面的空行警告,怎么办呢?
可以在相关的文件里添加代码:

#pragma diag_suppress 1

同理,对第二种警告:

#pragma diag_suppress 550

那有很多文件怎么办?懒人症又犯了。。。
肯定是有办法的,打开“options for target”,在C/C++选项中,可以看到有个Misc Controls选项
这里写图片描述

我们可以把上面的禁止警告语句加到这里面来,

--diag_suppress=1 --diag_suppress=550

添加后如图所示:

这里写图片描述
再一编译,ok,这两种烦人的警告已经消失在远方了。不过,该处理的警告还是自己要去处理掉,像的确没用到的变量就该删掉,还有函数的implicity declare之类的警告也是可以改掉的。


版权声明:本文为alfredseng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/alfredseng/article/details/54315944