首页 > 系统服务 > 详细

linux下 QtCreator 运行不显示 qDebug 输出的问题

时间:2021-05-06 14:41:21      阅读:102      评论:0      收藏:0      [点我收藏+]

问题简述

在使用 QtCreator 编译运行程序的时候,在 3应用程序输出 选项卡页面内没有相应的 qDebug 的输出内容。
关于这个问题,网上有的解决方案是在项目配置选项中勾选 run in terminal。但是这个解决不了根本问题,只是开启一个终端去运行,在终端输出而已。
技术分享图片

我使用的发行版本为 ManjaroLinux,使用的 QtCreator 为当前最新的 4.14.2 版本。

解决方案

在网上找到了一个解决方案,这个是可以解决问题的。

ArchLinux下QtCreator无法显示qDebug()的输出的问题与解决方案

博主最近在升级了Qt之后发现,之前编译运行完全没问题的程序在新的Qt5.3中,虽然是以Debug编译运行,但qDebug()这个最常用的调试函数却出问题了,表现为在QtCreator的Application Output窗口中不会有debug信息输出,但如果编译好程序放在console里运行,是可以看到debug信息的。在网上查阅了一下,发现这是由于Archlinux的二进制打包者使用了-journald编译参数,而恰好Qt在这方面有个Bug,会导致debug信息不能正常输出,不过可以手动为QtCreator添加QT_LOGGING_TO_CONSOLE=1的环境变量来解决这个问题。

当前此Bug已经提交到了Qt的bugreports网站中,有人建议将QT_LOGGING_TO_CONSOLE=1加入到QtCreator的默认运行环境变量中,此时Bug还未修复

如果你也遇到了相同的问题,可以试试下面几个方法,这些方法是在Archlinux的Bug列表中大家针对此Bug发的一些解决方案:

  1. 从命令行启动QtCreator: $ QT_LOGGING_TO_CONSOLE=1 qtcreator.
  2. 使用Export将QT_LOGGING_TO_CONSOLE=1加入到环境变量中(.bashrc/.zshrc等等,可能要重启以生效).
  3. 编辑qtcreator.desktop启动文件加上QT_LOGGING_TO_CONSOLE=1的环境变量.
  4. 重新编译安装Qt,记得不要加-journald参数.
  5. 换Qt5.3以下的版本.

不过现在新版本的 QtCreator 已经提示废弃了 QT_LOGGING_TO_CONSOLE 环境变量的使用,建议使用 QT_ASSUME_STDERR_HAS_CONSOLE 或者 QT_FORCE_STDERR_LOGGING(可同时都使用)。

建议修改 /usr/share/applications/org.qt-project.qtcreator.desktop 文件,加入环境变量QT_ASSUME_STDERR_HAS_CONSOLE=1
修改方法:将 Exec=qtcreator %F 改为 Exec=env QT_ASSUME_STDERR_HAS_CONSOLE=1 qtcreator %F

linux下 QtCreator 运行不显示 qDebug 输出的问题

原文:https://www.cnblogs.com/oloroso/p/14734583.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!