问题: 为了进行调试,CLion不会输出任何控制台输出。
我正在使用带有MingW编译器和cmake的CLion。无论我是否使用:
printf("Testing");
或者:
server.js
我没有看到任何控制台输出。
尝试解决方案:
1 我已经检查了"运行","调试","终端"和" Cmake"。我试图编辑我的配置但是" Debug"没有出现。
2 接下来,我进入了设置 - >构建,执行,部署 - > CMake来编辑生成类型。我添加了Debug和RelWithDebInfo但仍无济于事。
第3: 我还尝试添加" -Debug"到Cmake,但我仍然没有输出。
4 我收到的最接近调试的是使用GDB在断点处查看变量值。这仅适用于" RelWithDebInfo"代。
答案 0 :(得分:1)
<强>解决方案:强>
我最终搞清楚问题所在。
我正在Windows上的CLion中开发Qt GUI应用程序。您必须指定控制台输出的控制台才能打印到。
在主服务器的早期调用此Console()函数,以打开控制台提示符。现在,每当你运行
QDebug() << <string>;
或
std::cout << <string> std::endl;
您将看到您的调试声明。希望这能帮助其他人解决同样的问题。
<强>代码:强>
void Console()
{
AllocConsole();
FILE *pFileCon = NULL;
pFileCon = freopen("CONOUT$", "w", stdout);
COORD coordInfo;
coordInfo.X = 130;
coordInfo.Y = 9000;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coordInfo);
SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE),ENABLE_QUICK_EDIT_MODE| ENABLE_EXTENDED_FLAGS);
}
<强>来源:强>
我在这里找到了一个解决方案: [0] Console output in a Qt GUI app?
答案 1 :(得分:1)
有一个更简单的解决方案,不需要添加任何代码。只需在调试配置中添加以下环境变量:
QT_ASSUME_STDERR_HAS_CONSOLE=1
这样,当使用调试器启动时,CLion 会显示 QDebug
和 QML 的 console.*()
。