Qt предлагает (гарантированное) определение отладки?

Кто-нибудь знает официально поддерживаемый способ включить только код отладки в Qt? Например:

#ifdef QT_DEBUG
// do something
#endif

В принципе, как Q_ASSERT, но для более сложных тестов.

Я не могу найти документацию, в которой говорится, что структура Qt гарантирует определение макроса отладки. Если этого не произойдет, то какой разумный неофициальный способ широко реализовать этот проект?

Ответ 1

Qt определяет QT_NO_DEBUG для релизов. В противном случае определяется QT_DEBUG.

Конечно, вы можете указать любой DEFINES в ваших .pro файлах и область их для debug или release.

Ответ 2

Альтернативой является запись в файле проекта:

debug {
  DEFINES += MYPREFIX_DEBUG
}
release {
  DEFINES += MYPREFIX_RELEASE
}

Тогда вы не будете зависеть от внутреннего определения Qt.

Ответ 3

Для проверки режима отладки:

#ifdef QT_DEBUG
    //Some codes
#endif

Для режима проверки выпуска:

#ifndef QT_DEBUG    //<== Please note... if not defined
    //Some codes
#endif