使用Qt Creator和CMake显示命令提示符

时间:2014-08-07 05:07:34

标签: c++ g++ cmake mingw qt-creator

有问题的开发环境包括:

  • Windows 7
  • MinGW(g ++)
  • CMake的
  • Qt Creator

问题在于,据我所知,Qt Creator是一个可爱的IDE,它不会显示程序的命令行输出。它似乎有自己的专有调试窗格,但它没有给我,例如,运行时错误。它只是告诉我程序失败了,并给了我退出代码。我只使用Creator来实现其C ++功能,而不是以任何方式使用Qt,因此专有窗格对我来说毫无用处。

所以我问这个问题:可以做点什么吗?我是否真的丢失了一些东西,就像内置命令行那样愚蠢明显?或者,如果没有,我可以至少使用一些肮脏和/或令人厌恶的黑客来让它在运行程序时显示Windows命令提示符吗?

最后一件事;我做了一些研究,并找到了编辑Qt项目文件以显示提示的方法,但是......我正在使用CMake,而不是Qt项目。所以这不回答我的问题。如果我可以使用CMakeLists.txt做类似的事情,那将是非常棒的。但谷歌在这方面让我失望,所以我并没有抱太大的希望。

修改

我特别担心运行时错误。 coutprintf被重新发送到Qt Creator的窗口,所以没关系。除非调试器捕获它们,否则我不会遇到运行时错误,并且其频率不太理想。

1 个答案:

答案 0 :(得分:1)

Windows GUI程序不具备标准输出。

在Windows中,标准运行时中有两个可能的入口点。控制台一个和窗户一个。控制台将从父进程继承控制台窗口或创建一个新的控制台窗口并将标准输入/输出/错误流连接到它,而Windows将使它们保持未连接状态,除非它们被调用进程显式重定向。 Qt应用程序(可能;您可以拥有控制台Qt-Core应用程序)是一个GUI应用程序,Qt Creator(也没有任何其他Windows IDE)不会显式重定向输出。因此,标准输出根本不打开,写入被丢弃。

然而,Windows具有单独的日志记录功能以进行调试。这是您在调试窗口中看到的内容。您可以使用原生OutputDebugString API对其进行写入。我相信你也可以在那里指导Qt调试日志。

注意,当它告诉你程序已退出状态为0时,表示程序已运行,这反过来意味着它已成功编译,因此g ++没有错误。可能有警告,在这种情况下,您应该在适当的其他窗口中看到它们。编译器和程序输出是不同的东西; IDE确实读取了编译器输出。