Должен ли я удалить заголовок QDebug для выпуска?

У меня есть приложение Qt, и я использую сообщение qDebug для своего приложения.

Однако я обленился и оставил кучу:

#include <QDebug> 

в моих заголовочных файлах. Должен ли я удалить их для производственного развертывания и какую пользу это даст?


person Phil Hannent    schedule 10.08.2009    source источник


Ответы (2)


Вы не должны удалять включение заголовка. Если вы сделаете это, каждая инструкция, включающая qDebug, может привести к ошибке компилятора.

Вместо этого определите символ QT_NO_DEBUG_OUTPUT при компиляции для выпуска. qDebug ничего не сделает, когда этот символ определен, и (надеюсь) компилятор оптимизирует вызовы функции, которая ничего не делает.

person Cătălin Pitiș    schedule 10.08.2009
comment
Этого недостаточно, потому что вы все еще можете получать сообщения qDebug от библиотек Qt. Если вы разработчик Windows, вы можете проверить это с помощью программы dbgview от SysInternals. - person hmuelner; 09.05.2011
comment
Это хороший вариант для эффективного отключения операторов qDebug. Однако, если у вас есть некоторые второстепенные операторы qDebug, которые не сильно повторяются в циклах в коде, вы можете оставить их в коде выпуска. Имейте в виду, что на самом деле есть удар по производительности, когда у вас есть много повторных вызовов qDebug, как это может быть в циклах. В таком случае важно использовать описанную выше технику, чтобы удалить их из кода выпуска. - person panofish; 26.04.2018

Лучшей идеей может быть изучение qInstallMsgHandler. Вы можете перенаправить свои отладочные сообщения куда угодно.

person radix07    schedule 01.03.2011