【问题标题】:How do I configure CLion standard console output?如何配置 CLion 标准控制台输出?
【发布时间】:2017-01-24 23:51:18
【问题描述】:

问题: CLion 不会出于调试目的输出任何控制台输出。

我将 CLion 与 MingW 编译器和 cmake 一起使用。不管我是否使用:

std::cout << "Testing" << std::endl;

或者:

printf("Testing");

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

解决问题的尝试:

1: 我检查了“运行”、“调试”、“终端”和“Cmake”。我试图编辑我的配置,但“调试”没有出现。

2: 接下来,我去 Settings->Build,Execution,Deployment->CMake 编辑生成类型。我添加了 Debug 和 RelWithDebInfo 仍然无济于事。

3: 我也尝试在 Cmake 中添加“-Debug”,但仍然没有输出。

4: 我收到的最接近调试的东西是使用 GDB 在断点处查看变量值。这仅适用于“RelWithDebInfo”生成。

【问题讨论】:

    标签: clion


    【解决方案1】:

    解决方案:

    我最终找出了问题所在。

    我正在 Windows 上的 CLion 中开发 Qt GUI 应用程序。您必须为要打印的控制台输出指定一个控制台。

    在您的 main 中尽早调用此 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?

    【讨论】:

      【解决方案2】:

      有一个更简单的解决方案,不需要添加任何代码。只需在调试配置中添加以下环境变量:

      QT_ASSUME_STDERR_HAS_CONSOLE=1
      

      这样,CLion 在使用调试器启动时会显示 QDebug 和 QML 的 console.*()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-01
        • 1970-01-01
        • 2020-08-24
        • 2015-12-20
        • 2019-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多