使用Qt Creator(不使用任何类型的Qt框架)时,用于C(非C ++)程序的printf

问题描述 投票:0回答:1

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

我主要开发嵌入式代码,而且有人已经打造了一个整洁的LCD模拟器,所以我们可以编写很多独立于目标平台的代码(它将是嵌入式ARM)。他给了我一个gcc make文件和我在Linux桌面上导入Qt创建者的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创建器编写GUI,我想在运行中打印数据,我只需要写入调试窗口。

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

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

c printf qt-creator printf-debugging
1个回答
1
投票

正如评论中所写的那样(我之所以写评论是因为我没有QT,因此无法检查,过去几个月也没有使用过,所以我不确定),你可以尝试一些解决方案:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.