[Share Experiences] 冷(?)知识:仅在 Qt Release 版本程序中禁用 qDebug 输出
Tofloor
poster avatar
忘记、过去
deepin
2021-04-17 07:48
Author

不太确定算不算是冷知识的冷知识:如何仅在 Qt Release 版本中禁用 qDebug/qWarning 输出?

 

(来源 CSDN,但是原始方法似乎有错误,还都是复制的同一个错误 XD......)

在 .pro 文件中添加

# 禁止输出 qWarning / qDebug 信息
CONFIG(release, debug|release): DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT

该行即可在 Release 版本中禁用 qDebug/qWarning 输出信息,而在 Debug 版本中依然保留。

* 注意:添加该行后需要重新构建整个项目才能生效......不放心的建议把构建文件夹整个扬了......

 

 

题外话:

为啥想起来发这个呢?

一个是在写毕业设计,正好闲着蛋疼想加上。

另一个是从 Deepin 1003(?)开始,系统默认禁用了所有 Qt 应用的 Debug 输出,极为不方便......当时猜测是为了屏蔽系统应用的输出调试信息才这么改的,但是不方便开发啊......

一开始挺好奇应用发布的时候为什么不把 qDebug 信息注释掉或者删掉避免这个问题,可能工程量太大?但是为啥不直接区分开 Debug 和 Release 版本呢?Debug 版本保留信息而 Release 版本屏蔽不就行了吗......于是做毕设的时候就去查了 XD......试验了好几次才成功。

 

顺带一提,官方的 GitHub 仓库还是比较规范的。有些语句只在 Debug 时使用,直接用宏定义 QT_DEBUG 套上即可。那为啥要全局屏蔽 Debug 信息呢......有点想不通......

 

 

P.S. 真要说起 Debug 和 Release 完全区分开,还得看 OpenCore......人家开发者是真的强迫症到极致的那种 XD......

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
Q&A Team
2021-12-25 06:46
#1

挖坟

Reply View the author