最近发现工程的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 版权协议,转载请附上原文出处链接和本声明。