如何配置 CLion 标准控制台输出?
How do I configure CLion standard console output?
问题:
CLion 不会出于调试目的输出任何控制台输出。
我将 CLion 与 MingW 编译器和 cmake 结合使用。不管我是否使用:
std::cout << "Testing" << std::endl;
或者:
printf("Testing");
我没有看到任何控制台输出。
解决尝试次数:
1:
我检查了 "Run"、"Debug"、"Terminal" 和 "Cmake"。我试图编辑我的配置,但 "Debug" 没有出现。
2:
接下来,我转到 Settings->Build,Execution,Deployment->CMake 来编辑生成类型。我添加了 Debug 和 RelWithDebInfo,但仍然无济于事。
3:
我也尝试将“-Debug”添加到 Cmake,但我仍然没有输出。
4:
我收到的最接近调试的东西是使用 GDB 在断点处查看变量值。这仅适用于 "RelWithDebInfo" 代。
解法:
我最终弄清楚了问题所在。
我正在 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?
有一个不需要添加任何代码的更简单的解决方案。只需在调试配置中添加以下环境变量:
QT_ASSUME_STDERR_HAS_CONSOLE=1
有了这个,当使用调试器启动时,CLion 显示 QDebug
和 QML 的 console.*()
。
问题: CLion 不会出于调试目的输出任何控制台输出。
我将 CLion 与 MingW 编译器和 cmake 结合使用。不管我是否使用:
std::cout << "Testing" << std::endl;
或者:
printf("Testing");
我没有看到任何控制台输出。
解决尝试次数:
1: 我检查了 "Run"、"Debug"、"Terminal" 和 "Cmake"。我试图编辑我的配置,但 "Debug" 没有出现。
2: 接下来,我转到 Settings->Build,Execution,Deployment->CMake 来编辑生成类型。我添加了 Debug 和 RelWithDebInfo,但仍然无济于事。
3: 我也尝试将“-Debug”添加到 Cmake,但我仍然没有输出。
4: 我收到的最接近调试的东西是使用 GDB 在断点处查看变量值。这仅适用于 "RelWithDebInfo" 代。
解法:
我最终弄清楚了问题所在。
我正在 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?
有一个不需要添加任何代码的更简单的解决方案。只需在调试配置中添加以下环境变量:
QT_ASSUME_STDERR_HAS_CONSOLE=1
有了这个,当使用调试器启动时,CLion 显示 QDebug
和 QML 的 console.*()
。