qDebug and cout don't work

故事扮演 提交于 2019-12-02 00:35:22

问题


I have this simple code

#include <QtCore/qdebug.h>
#include <QtCore/qcoreapplication.h>
#include <iostream>
using namespace std;

int main(int argc, char **argv)
{
    cout << "pluto" << endl;
    QCoreApplication app(argc, argv);
    qDebug() << "pippo" << endl;
    return app.exec();
    //return 0;
}

I compiled it with MinGw in Eclipse with no errors, but when I run the code no string message appear on the consolle. What is wrong? Thanks.

Luca


回答1:


For cout to work on Windows, you need to have CONFIG+=console in the .pro file. It shouldn't have any effect on any other platform, so you can just add it there. You can use qmake conditionals if you only want it for debug builds or something., or you can pass it to qmake as command line option, if it is more convenient for your workflow:

qmake ...other args... CONFIG+=console

Under Windows, qDebug() output by default goes to Windows debug logs. You can get it in two ways:

  • Use an application such as an IDE or standalone DebugView tool from Microsoft.
  • Use qInstallMessageHandler Qt function in your program code, and catch the debug output, and do what you want with it, such as print it with cout and/or log it.



回答2:


If you really need have that on output, you can try with QTextSteam:

#include <QTextStream>

QTextStream cout(stdout);
cout << "string\n";

QTextSteam cerr(stderr);
cerr << "error!\n";


来源:https://stackoverflow.com/questions/22959752/qdebug-and-cout-dont-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!