中标麒麟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社区有相关讨论。

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中。

四、验证

终端中运行:

 qtcreator中运行:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值