我在QT5.3.1中构建了一个QWidgets应用程序,并在一些地方使用了
qDebug() << msg;其中msg是一个QString。我已经进行了几年的编译和运行,但是今晚我决定重新编译它,我得到了这样的信息:
D:\devt\myapp\extcoder.cpp:29: error: no matching function for call to 'QMessageLogger::debug()'
qDebug()<<msg;
^事实上,我在前几天编写的另一个应用程序中遇到了类似的问题,通过实验,我认为我已经用qDebug(msg)替换了这样的调用,从而解决了这个问题。但是看起来好像有某种软件开始腐烂了!有什么想法吗?当然,文件的开头是
#include <QDebug>为了测试这个问题,我构建了一个基本的QWidgets应用程序( QMainWindow类),我编写的唯一代码是(除了#include)
qDebug()<<"Hello world";在MainWindow构造函数中。我得到了完全相同的编译错误。
发布于 2017-06-22 08:51:23
Qt的重新安装使qDebug()<<s再次工作。
这确实是一种“软件腐烂”:我在复制原版之后重新安装了qt5.3.1,这样我就可以将新的和旧的进行比较。
使用Winmerge,我能够发现错误:我不知道它是如何发生的,但是文件qlogging.h被破坏了。所发生的事情如下:在第118和第120行,两个版本的调试声明被重写为NBIS_debug。现在,我一直在努力从NBIS移植免费软件。在某个阶段,我必须将调试函数从debug重命名为NBIS_debug,并且这种修改必须一直传播到qlogging.h。
发布于 2017-06-22 05:54:04
Qt中支持QDebug &QDebug::operator<<(const QString &s)。
输出示例:
QString s;
s = "a";
qDebug().noquote() << s; // prints: a
qDebug() << s; // prints: "a"您的Qt环境必须中断。如果需要,请检查您的环境并重新安装Qt。
发布于 2019-06-29 19:37:36
我不得不重新安装Ubuntu和Qt。只重新安装Qt没有帮助。
https://stackoverflow.com/questions/44683893
复制相似问题