我在发布模式下运行我的项目,我没有遇到任何问题。 而且我将模式更改为调试模式并且出现错误"调试断言失败"。
导致它的代码:
QXmlStreamReader* xmlReader = new QXmlStreamReader(xmlFile);
xmlReader->readNextStartElement();
QXmlStreamAttributes attributes;
attributes = xmlReader->attributes();
cout << (attributes.value("name").toString().toStdString());
在这条cout线后,我有错误按摩。
导致差异的模式之间有什么区别?
我想知道在调试模式下运行项目需要更改什么。
答案 0 :(得分:1)
模式之间的区别在于发布模式
assert( expr );
编译为零。在调试模式下,它编译为:
if (!(expr))
assert_failed( "expr" );
(以上是给人的味道,有一些细微之处)。这意味着你没有注意到发布模式下的问题(你可能会做一些事情,比如写一些未使用的内存)。墨菲定律说,当你来向大客户/你的教授演示时,你会注意到这些问题。
如果你查看断言发生的行,它会告诉你它在抱怨什么。你需要解决这个问题。