Ответ 1
Qt определяет QT_NO_DEBUG
для релизов. В противном случае определяется QT_DEBUG
.
Конечно, вы можете указать любой DEFINES
в ваших .pro файлах и область их для debug
или release
.
Кто-нибудь знает официально поддерживаемый способ включить только код отладки в Qt? Например:
#ifdef QT_DEBUG
// do something
#endif
В принципе, как Q_ASSERT, но для более сложных тестов.
Я не могу найти документацию, в которой говорится, что структура Qt гарантирует определение макроса отладки. Если этого не произойдет, то какой разумный неофициальный способ широко реализовать этот проект?
Qt определяет QT_NO_DEBUG
для релизов. В противном случае определяется QT_DEBUG
.
Конечно, вы можете указать любой DEFINES
в ваших .pro файлах и область их для debug
или release
.
Альтернативой является запись в файле проекта:
debug {
DEFINES += MYPREFIX_DEBUG
}
release {
DEFINES += MYPREFIX_RELEASE
}
Тогда вы не будете зависеть от внутреннего определения Qt.
Для проверки режима отладки:
#ifdef QT_DEBUG
//Some codes
#endif
Для режима проверки выпуска:
#ifndef QT_DEBUG //<== Please note... if not defined
//Some codes
#endif