qt - qDebug()<<qstring 不再编译

标签 qt qdebug

我在 Qt 5.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 构造函数中。我得到完全相同的编译错误。

最佳答案

重新安装 Qt qDebug()<<s再次工作。

这确实是一种“软件腐烂”:我复制了原版后重新安装了qt 5.3.1,以便可以将新旧进行比较。

使用 Winmerge 我能够发现错误:
我不知道它究竟是怎么发生的,但文件 qlogging.h 已损坏。
发生的事情是这样的:在第 118 和 120 行,两个版本的 debug 的声明被重写为 NBIS_debug。
现在我一直在尝试从 NBIS 移植自由软件。在某个阶段,我必须将调试函数从 debug 重命名为 NBIS_debug,并且此修改必须一直传播到 qlogging.h。

关于qt - qDebug()<<qstring 不再编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44683893/

相关文章:

c++ - QDebug类结构: determine end of input via `operator<<`

eclipse - qDebug 和 cout 不起作用

c++ - 如何决定要打印的 QtMsgType 消息类型

c++ - 在qt中创建另一个网络线程

qt - 删除警告- QML 连接 : Cannot assign to non-existent property "onValueChanged"

qt - 如何将QGraphicsScene/View设置为特定的坐标系

c++ - 调整 Qt 窗口大小时出现闪烁的白色区域

html - PySide QTextEdit html 表格宽度

c++ - 使用 qDebug 收集用户输入

c++ - Qt调试提要不断发送垃圾换行符