相关疑难解决方法(0)

如何重定向qDebug,qWarning,qCritical等输出?

我在qDebug() <<调试输出中使用了很多语句.有没有任何跨平台的方法我可以将调试输出重定向到文件,而不需要求助于shell脚本?我猜测open()dup2()将在Linux中完成这项工作,但它是否可以在Windows中使用MinGW编译?

也许有Qt方法可以做到这一点?

c++ debugging qt mingw qdebug

77
推荐指数
6
解决办法
6万
查看次数

qDebug()线程安全吗?

qDebug()线程安全的?通过线程安全我不仅仅意味着不崩溃,而且如果我qDebug()从不同的线程调用,输出是否可能变得混乱?我用这个代码测试了它,但它看起来并不是这样,但是,我在文档中的任何地方都找不到它们所讨论的内容.

这是我的测试代码:

#include <QtConcurrent>
#include <QApplication>
void print_a() {
    for (int ii = 0; ii < 10000; ii++) {
        qDebug("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    }
}
void print_b()
{
    for (int ii = 0; ii < 10000; ii++) {
        qDebug("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
    }
}
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtConcurrent::run(print_a);
    QtConcurrent::run(print_b);
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

任何地方没有'a'和'b'混合在同一行,但我仍然不确定它是否100%线程安全......

c++ qt multithreading qdebug

25
推荐指数
4
解决办法
5176
查看次数

标签 统计

c++ ×2

qdebug ×2

qt ×2

debugging ×1

mingw ×1

multithreading ×1