怎么消除这个 warning: #550-D: variable “obj” was set but never used

发布于 2019-12-26 15:29:23
[table=98%]
[tr][td]如题,移植RT3.1.3 nano提示rt_thread_creat undefined symbol。
但是我已经包含了rtthread.h了,代码在附件,帮忙看下了,大神们。
STM32F103ZET6 MDK
用的是标准库,不是hal库
微信截图_20191226152559.png

微信截图_20191226152610.png[/td][/tr]
[/table]

查看更多

关注者
0
被浏览
490
5 个回答
RTT_User1
RTT_User1 2019-12-26
    本帖最后由 RTT_User1 于 2019-12-26 15:50 编辑


变量obj定义但从未使用,或者是,虽然这个变量你使用了,但编译器认为变量obj所在的语句没有意义,编译器把它优化了.
可以在变量定义前加上volatile告诉编译器不要优化。

1.JPG
2.JPG
RT_2020
RT_2020 2020-03-31
RTT_User1 发表于 2019-12-26 15:48
变量obj定义但从未使用,或者是,虽然这个变量你使用了,但编译器认为变量obj所在的语句没有意义,编译器把它优 ...


我遇到同样问题,按你的方法加volatile,问题没有解决。
sunwan
sunwan 2020-03-31
    本帖最后由 sunwan 于 2020-3-31 20:42 编辑


RT_2020 发表于 2020-3-31 20:25
我遇到同样问题,按你的方法加volatile,问题没有解决。


sunwan
sunwan 2020-03-31
sunwan 发表于 2020-3-31 20:40


标题和内容对不上。
如果是:warning: #550-D: variable “obj” was set but never used
(void)obj;

如果显示未定义,试试搜索这个未定义的类型实在哪个文件里的,再把.h文件包含进来。
绝缘体
绝缘体 2020-06-30
勾选debug编译后这个warning会消失。因为obj用在了RT_ASSERT中,而RT_ASSERT只有在debug模式下,这个宏才会有实际的函数体。
gaoyang9992006
gaoyang9992006 2020-08-01

在rtconfig.h启用#define RT_DEBUG就OK了

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友