c++ qDebug未显示任何内容

06odsfpq  于 2023-06-25  发布在  其他
关注(0)|答案(9)|浏览(267)

通常当我需要调试某些东西时,使用qDebug()打印一些东西比使用调试器一步一步地调试更容易。问题是qDebug()的输出有时根本不显示!qWarningqCritical也是如此。奇怪的是,它只发生在正常运行项目时(Ctrl+R),而在调试时(F5)输出显示。

3duebb1j

3duebb1j1#

解决办法很简单:添加CONFIG += console到你的.pro文件并重建整个项目.

eoigrqb6

eoigrqb62#

解决方案对我来说,正如在www.example.com所述https://bugzilla.redhat.com/show_bug.cgi?id=1227295#c10是:
1.在/etc/xdg/QtProject/中查找qtlogging.ini
1.编辑当前文件(如果缺少,则创建文件qtlogging.ini

[Rules]
*.debug=false

[Rules]
*.debug=true
qt.*.debug=false

1.重新编译并检查!

c0vxltue

c0vxltue3#

如果您运行Qt Creator的多个示例,则qDebug无法正常工作。

bnl4lu3b

bnl4lu3b4#

我也遇到了同样的问题,这里的答案没有一个对我有帮助。我在这里找到了解决方案:https://lists.fedoraproject.org/archives/list/kde@lists.fedoraproject.org/thread/SB6QJZGVDLWWBZCMTNKMVZSSPPNREOYJ/
我必须设置QT_ASSUME_STDERR_HAS_CONSOLE=1。这可以在代码中完成:

qputenv("QT_ASSUME_STDERR_HAS_CONSOLE", "1");

或者在“环境”下的“套件”设置中更好。

camsedfj

camsedfj5#

这个问题的解决方案使用

Windows 10 Education
Qt Creator (5.x)
Developing a Qt widget.

问题:
所以我的问题是每当我添加一个QDebug消息时,它并没有显示在应用程序输出中,尽管我的代码和教程中的代码100%相同,并且编译得很好。
解决方案:
右键单击您添加QDebug消息的文件,对我来说是main.cpp。单击生成。按下底部的绿色箭头。
如果这仍然不起作用,请转到“Build”->“CleanAll”,“Build”->“qMake”,然后再次选择绿色箭头。
当然,你必须检查#include <QDebug>并检查它在代码中是否拼写正确。

voj3qocg

voj3qocg6#

在我的情况下,不知何故,我忘记了单击“配置项目”。我正在使用QTCreator 4.11和Qt5.14。当我创建项目时,我没有在创建过程接近尾声时点击“Configure project”。

14ifxucb

14ifxucb7#

Qt5.14.2、QtCreator 4.12.0:对我来说有效的是取消选择项目->运行->在终端中运行...废话!

bqjvbblv

bqjvbblv8#

您必须配置日志记录规则。参见文档。
格式为:

<category>[.<type>] = true|false

日志记录规则是从日志记录配置文件的[Rules]部分自动加载的。这些配置文件可以在QtProject配置目录中查找,或者在QT_LOGGING_CONF环境变量中显式设置:

[Rules]
    *.debug=false
    driver.usb.debug=true

日志记录规则也可以在QT_LOGGING_RULES环境变量中指定;也可以用分号分隔多个规则:

QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true"

例如:

QT_LOGGING_RULES="*.debug=true;qt.*=false"
xj3cbfub

xj3cbfub9#

通过添加以下内容解决:

export QT_ASSUME_STDERR_HAS_CONSOLE=1

到qtcreator启动脚本放置在:

/home/yourUsername/qtcreator-10.0.0/bin/qtcreator.sh

通过从官方网站下载的应用程序提供。

#! /bin/sh

export QT_ASSUME_STDERR_HAS_CONSOLE=1

# Use this script if you add paths to LD_LIBRARY_PATH
# that contain libraries that conflict with the
# libraries that Qt Creator depends on.

makeAbsolute() {
    case $1 in
        /*)
            # already absolute, return it
            echo "$1"
            ;;
        *)
            # relative, prepend $2 made absolute
            echo `makeAbsolute "$2" "$PWD"`/"$1" | sed 's,/\.$,,'
            ;;
    esac
}
..
//some lines...
..
export LD_LIBRARY_PATH
exec "$bindir/qtcreator" -user-library-path "$_ORIGINAL_LD_LIBRARY_PATH" ${1+"$@"}.

相关问题