4

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


cols = ['imdb_score', 'movie_title',
        'gross', 'content_rating','genres']
df.loc[df.imdb_score.nlargest(3).index, cols]
4

3 回答 3

1

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

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

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

于 2017-06-22T08:51:23.523 回答
0

我不得不重新安装 Ubuntu 和 Qt。仅重新安装 Qt 没有帮助。

于 2019-06-29T19:37:36.503 回答
0

Qt 支持QDebug &QDebug::operator<<(const QString &s)

输出示例:

QString s;

s = "a";
qDebug().noquote() << s;    // prints: a
qDebug() << s;              // prints: "a"

您的 Qt 环境必须被破坏。请检查您的环境并在需要时重新安装 Qt。

于 2017-06-22T05:54:04.760 回答