C++ 我是否应该卸下QDebug头以便发布?

C++ 我是否应该卸下QDebug头以便发布?,c++,qt,optimization,C++,Qt,Optimization,我有一个Qt应用程序,我使用qDebug消息来处理我的应用程序 然而,我变得懒惰,带着一大堆东西离开了: #include <QDebug> #包括 在我的头文件中。我应该为生产部署删除它们吗?它会带来什么好处?您不应该删除标题包含。如果这样做,涉及qDebug的每个语句都可能会给出一个编译器错误 相反,在编译以供发布时定义符号QT_NO_DEBUG_OUTPUT。当该符号被定义时,qDebug将不起任何作用,并且(希望)编译器将优化掉对一个不起作用的函数的调用。更好的办法可能

我有一个Qt应用程序,我使用qDebug消息来处理我的应用程序

然而,我变得懒惰,带着一大堆东西离开了:

#include <QDebug> 
#包括

在我的头文件中。我应该为生产部署删除它们吗?它会带来什么好处?

您不应该删除标题包含。如果这样做,涉及qDebug的每个语句都可能会给出一个编译器错误


相反,在编译以供发布时定义符号QT_NO_DEBUG_OUTPUT。当该符号被定义时,qDebug将不起任何作用,并且(希望)编译器将优化掉对一个不起作用的函数的调用。

更好的办法可能是研究qInstallMsgHandler。您可以将调试消息重定向到任何您想要的地方。

这是不够的,因为您仍然可以从Qt库获取qDebug消息。如果您是一名Windows开发人员,您可以从SysInternals中使用dbgview程序进行检查。这是一个有效禁用qDebug语句的好选项。但是,如果您有一些次要的qDebug语句,这些语句在代码的循环中不会大量重复。。您可以将它们保留在发布代码中。请记住,当您多次重复调用qDebug时,实际上会影响性能,就像在循环中一样。在这种情况下,使用上述技术将它们从发布代码中删除是很重要的。