如何配置CLion标准控制台输出?

时间:2017-01-24 23:51:19

标签: clion

问题: 为了进行调试,CLion不会输出任何控制台输出。

我正在使用带有MingW编译器和cmake的CLion。无论我是否使用:

printf("Testing");

或者:

server.js

我没有看到任何控制台输出。

尝试解决方案:

1 我已经检查了"运行","调试","终端"和" Cmake"。我试图编辑我的配置但是" Debug"没有出现。

2 接下来,我进入了设置 - >构建,执行,部署 - > CMake来编辑生成类型。我添加了Debug和RelWithDebInfo但仍无济于事。

第3: 我还尝试添加" -Debug"到Cmake,但我仍然没有输出。

4 我收到的最接近调试的是使用GDB在断点处查看变量值。这仅适用于" RelWithDebInfo"代。

2 个答案:

答案 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.*()