中标麒麟QT中qDebug无输出问题解决办法

一、系统环境:

中标麒麟V5

qt-creator-4.3.1

qt5-qtbase-5.6.2

二、问题:代码中qDebug()函数无输出,但qInfo()和qWarning()有输出

创建一个test工程,使用qDebug()打印信息,但是没有任何输出,但是qInfo()qWarning()是正常的。

// mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    qDebug() << "test qDebug" ;
    qInfo() << "test qInfo" ;
    qWarning() << "test qWarning".
}

运行结果为:

中标麒麟QT中qDebug无输出问题解决办法_第1张图片

 三、解决方法

该问题存在很久了,QT社区有相关讨论。

a.我们可以使用qInfo()和qWarning()等其他函数代替qDebug(),但这需要修改你的代码。

b.对于不想修改项目代码、不想破坏现有日志级别的,可以使用添加环境变量的方法,使qDebug()正常工作:

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

说明:这是两条规则,分号分隔,后面的“qt.*.debug=false”不加也可以,但是会输出很多其他的日志信息。

# 每次运行前添加环境变量
QT_LOGGING_RULES="*.debug=true;qt.*.debug=false"   ./yourapp

# 或者 export一次,之后再运行app
export QT_LOGGING_RULES="*.debug=true;qt.*.debug=false" 
./yourapp

也可以将环境变量写入/etc/environment文件中,重启后一致生效。

# vim  /etc/environment
QT_LOGGING_RULES="*.debug=true;qt.*.debug=false"

如果仅仅是使用qtcreator开发和调试,只想在qtcreator中有输出,建议只把环境变量设置在qtcreator中。

中标麒麟QT中qDebug无输出问题解决办法_第2张图片

四、验证

终端中运行:

中标麒麟QT中qDebug无输出问题解决办法_第3张图片

 qtcreator中运行:

中标麒麟QT中qDebug无输出问题解决办法_第4张图片

 

你可能感兴趣的:(Linux系统,qt,开发语言)