可以看到,当定义了QT_NO_DEBUG_OUTPUT宏时,Qt 首先取消先前的qDebug宏定义,然后将其重新定义为QT_NO_QDEBUG_MACRO宏: #defineQT_NO_QDEBUG_MACRO while (false) QMessageLogger().noDebug QT_NO_QDEBUG_MACRO宏定义了一个永远不会执行的条件while (false),我们可以假定[1]编译器不会解释更不会去执行qDebu...
在Qt编程中,有时候需要针对Debug调试版和Release发行版做条件编译,做不同的处理,比如有时在Debug版中需要在控制台打印日志,在Release版中将日志写入到文件中。 Qt中提供了QT_DEBUG这个调试版宏,以及QT_NO_DEBUG这个发行版宏。 在https://stackoverflow.com/中看到了很老的一篇文章:Does Qt offer a (guaranteed) ...
#define QT_NO_DEBUG_OUTPUT #include <QCoreApplication> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 你的代码 return a.exec(); } 但请注意,直接在代码中定义QT_NO_DEBUG_OUTPUT可能不会有预期的效果,因为这通常需要Qt内部的处理来识别并据此减少调试输出。更...
一、修改qt项目pro配置文件 确保调试模式时,取消QT_NO_DEBUG_OUTPUT宏定义 CONFIG(debug, debug|release){ DEFINES -= QT_NO_DEBUG_OUTPUT } else{ DEFINES += QT_NO_DEBUG_OUTPUT } 二、设置是否允许输出调试信息 设置允许输出调试信息。 QLoggingCategory::defaultCategory()->setEnabled(QtDebugMsg, true);...
51CTO博客已为您找到关于QT_NO_DEBUG的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及QT_NO_DEBUG问答内容。更多QT_NO_DEBUG相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
可以看到,在使用 nospace() 后,输出的项之间没有额外的空格。 DEFINES+= QT_NO_DEBUG_OUTPUT: 在Qt 项目文件(.pro 文件)中,可以通过添加 DEFINES+= QT_NO_DEBUG_OUTPUT 来禁用所有的 Qt 调试输出。 这意味着,不仅仅是 qDebug(),还有其他 Qt 的调试输出函数也都不会在调试模式下输出任何内容。
其中QLoggingCategory头文件定义了日志类别,而QtDebug头文件定义了用于调试的一系列宏。 在输出提示信息之前,我们需要设置日志类别。我们可以通过以下语句设置日志类别: QLoggingCategory::setFilterRules(".debug=true\n.warning=false"); 这句话的意思是将所有debug级别的信息输出,将所有warning级别的信息过滤掉。
re: Qt:禁止qDebug的输出 Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT 原来如此,以后就省的把每条qDebug都注释掉了。。。
#include#include<stdio.h>#include<stdlib.h>void myMessageOutput( QtMsgType type, const char *msg )//定义信息输出函数{switch ( type ) {case QtDebugMsg: //输出调试信息fprintf( stderr, "Debug: %s\n", msg );break;case QtWarningMsg: //输出警告信息fprintf( stderr, "Warning: %s\n", ...
unix:TARGET=$$join(TARGET,,,_debug) win32:TARGET=$$join(TARGET,,d) } make 或make debug ---debug版 make release ---release版 make all ---两个版本都生成 生成Makefile中有QT_NO_DEBUG参数 4、屏蔽release版本中所有QDebug()提示信息: 如果要在命令行输出...