Необходимы согласованные константы отладки для запуска действий на всех платформах

Я пытаюсь предотвратить отображение определенных сообщений об ошибках в 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, который может вызвать или не отображать ошибки?

0

Решение

TL; DR При тестировании на отладку или выпуск в CONFIG, используйте функцию тестирования двух параметров CONFIG(x,debug|release), где x либо debug или же releaseв зависимости от того, что вы хотите проверить.

CONFIG(release) тест неверен. Тебе нужно CONFIG(release,debug|release), Помните, что есть несколько debug а также release записи в CONFIG переменная (просто распечатайте и убедитесь сами). Это только последний Это приравнивается. Вот почему вы должны предоставить второй параметр CONFIG Тестовая функция — она ​​будет действовать только на прошлой запись для соответствия debug|releaseи если эта запись не releaseТест не пройден.

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector