事情是这样子的,我创建了一个函数,内部实现了一系列的计算方法,但每次运行的结果都会出现不同,有时候是0.0,有的时候是-3.1xxxe23....,让我很头疼,也找不到具体的解决办法。
但是,当我在计算结束之后,使用qDebug()将结果打印出来,神奇的结果居然正确了,说明并非我算法的问题,而是Qt的Bug或者编译器的问题。
果不其然,将Qt的编译优化关闭后,问题就消失了:
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE -= -O3
QMAKE_CXXFLAGS_RELEASE -= -Os
QMAKE_CXXFLAGS_RELEASE -= -Ofast
QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE += -O0