关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法
Posted 长沙红胖子Qt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法相关的知识,希望对你有一定的参考价值。
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127885215
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
Qt开发专栏:各种问题解决(点击传送门)
国产麒麟系统相关开发
问题
在windows上之前遇到了代码优化问题,进行了优化之后,将代码移植到国产银河麒麟上,在银河麒麟上编译器仍然会优化,并且产生大范围值不变的情况,导致本身作为时间轴的X值范围一直不变化(正常:随着毫秒往前刷新推动)
相关博客
《关于 在Qt中的timerEvent信号中设置QCustomplot的日期时间轴范围乱蹿(编译器优化变量volatile) 的解决方法》
《关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法》
尝试
1.使用秒,没有double除法,正常1s1s推进。
2.回到之前的代码,再测试:
3.为了防止是浮点数本身,加了一个测试打印:
4.最终判断为在麒麟上对代码进行了进一步的优化:
解决
调整代码,先定义变量只赋值,不做任何操作,然后每个操作一行即可(估计是先定义成volatile变量之后,再操作就可以),最终调整后的代码:
以上是关于关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法的主要内容,如果未能解决你的问题,请参考以下文章
关于 国产麒麟系统赋值给双精度double时乘以1.0f编译器优化 的解决方法
关于 国产麒麟系统赋值给双精度double时乘以1.0f编译器优化 的解决方法
关于 国产麒麟系统编译Qt项目是报错:error: cannot find -lGL 的解决方法