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

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

有问题的开发环境包括:

  • Windows 7
  • MinGW (g++)
  • CMake
  • Qt 创作者

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

所以我想问:可以做点什么吗?我是否遗漏了一些非常明显的东西,比如内置命令行?或者,如果没有,我是否可以至少使用一些肮脏和/或令人厌恶的技巧来让它在运行程序时显示 Windows 命令提示符?

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

编辑:

我特别担心运行时错误。 coutprintf 被重新路由到 Qt Creator 的窗口,所以没问题。除非调试器捕获它们,否则我不会收到运行时错误,而且这种情况的频率不太理想。

最佳答案

Windows GUI 程序没有标准输出。

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

然而,Windows 有单独的日志记录工具用于调试目的。这就是您在调试窗口中看到的。您可以使用 native OutputDebugString 写入它应用程序接口(interface)。我相信您也可以将 Qt 调试日志指向那里。

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

关于c++ - 使用 Qt Creator 和 CMake 显示命令提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25174571/

相关文章:

c++ - 如何在 gcc/clang 中的错误和警告之间添加换行符/边界

linker - 使用 CMake 链接到 Armadillo 库

cmake - 导出导入的库

ubuntu - 在 Ubuntu 上安装 OpenCV-2.4.3 时出错

c++ - 为发送到方法的参数分配的大小

c++ - std::stack<boost::shared_ptr<T>> 的深拷贝

c++ - 链表中节点的字段未解析

c++ - 在方法声明中使用 typedef 但在方法定义中使用规范类型是否合法 C++?

C++非整数模板Const初始化预期在ClassName之前的init-declarator

C++多线程文本输出打印到dos控制台重叠/弄乱输出