嵌入式技术论坛
直播中

丁冬芹

7年用户 1268经验值
私信 关注
[问答]

qemu-vexpress-a9开发板添加volatile防止编译器优化不起作用怎么解决?

qemu-vexpress-a9开发板mqtt实验编译错误。问题如下:

网上查找资料,添加volatile防止编译器优化不起作用,请问下各位专家,这个怎么解决呢?(官方代码,没有做任何改动)

回帖(2)

李娜

2022-5-12 16:12:24

这个问题主要是因为你的编译选项 比较严格 导致的,跟源码关系不是特别大,即同一份源码在不同的编译选项下,可能得出不一样的结果。
初步看你的编译选项开启了 -Werror (或开启了 -Werror=unused-but-set-variable)
这个选项就是会 把警告当错误处理
图中的这个

本身是一个警告来的,被这个选项作用下,编译器就会当错误处理,直接停止编译。
想要解决这个编译问题,方法有下面几个:
1.编译选项增加 -Wno-unused-but-set-variable 即把这种情形不当错误处理;
2.把-Werror或Werror=unused-but-set-variable 去掉;即不把警告当处理处理;【不推荐使用】
3.找到源码对应的行数,把这个 赋值了但未使用的变量注释掉

举报

张国厚

2022-5-12 16:24:07
可以把定义但是未使用的变量注释掉就行,或者修改编译选项
举报

更多回帖

发帖
×
20
完善资料,
赚取积分