使用带有CDB调试器的Win7下的QtCreator 2.8,我无法看到 应用程序输出标签我所有的fprintf(标准输出)内容!?
我试过了:
fprintf(stderr, "...");
fprintf(stdout, "..."); fflush(stdout);
什么都没发生。 在此期间,如果我选中“Run in terminal”选项,它可以正常工作!?
虽然我注意到所有输出都转到调试器日志!?
有什么想法吗?
答案 0 :(得分:3)
作为一种解决方法,您可以在CDB控制台中启用输出:tools / options / debugger / cdb然后检查"使用CDB控制台"。 要显示调试器,请右键单击某个窗口标题,然后选择" Debugger Log"。 您也可以右键单击调试器日志视图以禁用详细日志。 顺便说一下,我还注意到,当你附加到正在运行的进程时,标准的应用程序输出窗口效果很好。而不是从qtcreator开始。
答案 1 :(得分:0)
不是答案,只是评论说这显然是一个“功能”并且不会 得到修复。
我刚刚开始将在 Linux 下使用 GCC 和 Clang 开发的 C++/Qt 项目以及使用 MinGW GCC 的 Windows 7 移植到使用 MSVC 的 Windows 10。如果我的测试代码作为单独的程序运行,它会向控制台报告“所有测试通过”(或未通过),(std::cout) 在这种情况下是 Qt Creator 应用程序输出窗口。多年来,它一直在调试和发布模式下使用所有编译器在所有系统上工作。现在,当通过调试器运行时,它不会写入应用程序输出窗口,只有在像发布版本一样运行时才会写入。
在发现这个 (2021-04-16) 后,我在谷歌上搜索了解决方案,并登陆了这里。
答案 2 :(得分:0)
我知道这个答案没有回答最初的问题,但是因为在搜索“无应用程序输出”时我们找到了这个答案......
请参阅以下答案:https://stackoverflow.com/a/26325743/808101。
这仅适用于 qDebug() 和类似函数(不直接输出到 stdout/stderr)。
就我而言,我必须在 QtCreator 中将 QT_ASSUME_STDERR_HAS_CONSOLE
环境变量设置为 1
才能在“应用程序输出”窗口中查看 qDebug() 消息。对于旧版本的 Qt,请参阅旧/弃用环境变量的链接答案。
答案 3 :(得分:-2)
我经常以这种方式使用qDebug。
#include <QDebug> in the top of the file
用法:
qDebug() << "This is a Test";
使用QT创建器时运行良好,在GUI编程或控制台应用程序中无关紧要。