0

请注意,这不是 C++ 代码,我不是在开发 Qt 应用程序。

我主要开发嵌入式代码,有人开发了一个简洁的 LCD 仿真器,因此我们可以编写大量独立于目标平台(将是嵌入式 ARM)的代码。他给了我一个 gcc make 文件和我已在 Linux 桌面上导入 Qt creator 的 C 文件。只需使用一些 gcc 选项,它就可以针对不同的平台进行编译。因此,虽然它最终会在 STM32 上运行,但我现在可以在计算机上编写代码。他在 Windows 上做,但我在 Linux 上做。

我想做一些 printf 命令来吐出一些调试数据,这是我在嵌入式开发中通常不会做的事情,因为我使用的 IDE 具有设置断点和查看寄存器的强大功能。

我应该说我可以编译这样的一行:

printf("Selected Index is %d, Highlighted Position is %d, Index Start is %d \n",selected_index,highlight_position,index_start);

但我在调试器控制台中看不到任何输出。

如果我在极少数情况下使用 Qt creator 编写 GUI,我想即时打印数据,我只会写入调试窗口。

如果我想使用 Qt creator 为 bog 标准 C 程序执行 printf,如何让 printf 将数据吐出到调试器控制台?事实上可以做到吗?

我不能使用通常的 Qdebug 工具,因为我没有使用任何类型的 Qt 框架。我只是将 Qt 用作 ARM C 代码的 IDE 和调试器。

4

1 回答 1

1

正如评论中所写(我将其写为评论,因为我这里没有 QT,所以无法检查它,过去几个月我也没有使用过,所以我不确定),您可以尝试一些解决方案:

  • 调试器控制台旁边的栏中还有另一个窗口,称为“应用程序输出”,QT 控制台应用程序的输出位于其中。也许 printf 写在那里
  • 通常两个流(STDOUT 和 STDERR)都被重定向到适当的窗口,但有时不会。尝试改变它
  • 如果没有其他方法,最后一个解决方案是使用文件;写入调试文件并读回应用程序必须说的内容。不如直接输出那么直接,但总比没有好

根据您的回复,打印到 STDERR 会在应用程序输出窗口上显示输出,因此它也适用于纯 C。我认为 STDOUT 流也应该被重定向到该窗口,不过

于 2019-03-08T13:29:15.683 回答