Я пытаюсь предотвратить отображение определенных сообщений об ошибках в Release (как указано в моем вопросе). Ошибки, отображаемые в приложении Qt — как не отображать их в Release).
Я работаю над приложением в Qt … на Windows, Mac OS X и Linux.
Для Windows проверка на символы довольно проста:
#if defined (Q_OS_WIN32) && !defined (NDEBUG)
Но при проверке NDEBUG в Linux, когда проект построен с использованием qmake, NDEBUG не распознается …
Так что я могу создать константу в файле pro:
unix:CONFIG(release):DEFINES += NO_RELEASE_ERRORS
Это работало как для Linux, так и для Windows. Но когда я попробовал Mac, переключение между конфигурациями отладки и выпуска, казалось, дало мне определенную константу …
Я установил Qt 4.8 на MAC, но его установка может не иметь отладочных символов …
Как я могу найти на MAC символ типа DEBUG и RELEASE, который может вызвать или не отображать ошибки?
TL; DR При тестировании на отладку или выпуск в CONFIG
, используйте функцию тестирования двух параметров CONFIG(x,debug|release)
, где x
либо debug
или же release
в зависимости от того, что вы хотите проверить.
CONFIG(release)
тест неверен. Тебе нужно CONFIG(release,debug|release)
, Помните, что есть несколько debug
а также release
записи в CONFIG
переменная (просто распечатайте и убедитесь сами). Это только последний Это приравнивается. Вот почему вы должны предоставить второй параметр CONFIG
Тестовая функция — она будет действовать только на прошлой запись для соответствия debug|release
и если эта запись не release
Тест не пройден.