Eclipse qDebug和cout don';行不通

Eclipse qDebug和cout don';行不通,eclipse,qt,cout,qdebug,Eclipse,Qt,Cout,Qdebug,我有这个简单的代码 #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);

我有这个简单的代码

#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;
}
#包括
#包括
#包括
使用名称空间std;
int main(int argc,字符**argv)
{

cout对于
cout
要在Windows上工作,您需要在
.pro
文件中有。它不应该对任何其他平台有任何影响,所以您可以将它添加到那里。如果您只想将qmake条件用于调试生成或其他内容,可以使用qmake条件,或者您可以将它作为命令行选项传递给qmake,如果这对您的用户更方便的话工作流程:

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

在Windows下,默认情况下,
qDebug()
输出将转到Windows调试日志。您可以通过两种方式获得它:

  • 使用IDE或单机版等应用程序
  • 在程序代码中使用,捕获调试输出,并对其执行所需操作,例如使用
    cout
    打印和/或记录

如果您真的需要在输出上使用它,您可以尝试使用QTextSteam:

#include <QTextStream>

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

QTextSteam cerr(stderr);
cerr << "error!\n";
#包括
QTextStream cout(stdout);

在Windows上,qDebug使用调试通道。
qInstallMessageHandler
是关键。这不会改变任何事情。不管你在它周围放了什么API,它都会转到stdout/stderr。@FrankOsterfeld是的,但至少它会在控制台上打印消息。