QT中的qDebug函数

假如qt应用程序代码里有很多qDebug语句,但是发布程序时不带有控制台,那么发布的程序运行时遇到qDebug是如何处理的呢,是直接跳过还是?

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Qt5中qDebug信息不输出的解决方法
  • 除此之外, 这篇博客: qDebug()的使用方法中的 qDebug()的使用方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • qDebug()使用比较简单,步骤:
    1、添加头文件<qdebug.h>;
    2、使用qDebug()输出
    qDebug的输出方式:
    1、 将要输出的字符串当做参数传入到函数—按printf()理解
    2、 按照流的形式输出—按cout理解
    例子:

    #include "widget.h"
    #include <QApplication>
    #include<qdebug.h>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        Widget w;
        w.show();
    
        int x = 123;
        qDebug("x:%d",x);//函数输出方式
    
        //使用流的方法输出
        int y = 456;
        qDebug() << "y:" << y;//流输出方式
    
        return a.exec();
    }
    
    

不会跳过,它其实是用的对应系统的接口,比如在windows调用的是OutputDebugString,具体看系统怎么处理
如果想要跳过qDebug的话,在项目配置的define里加上QT_NO_DEBUG_OUTPUT