| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > макрос для debug |
| Автор: kuvshinka 25.5.2012, 23:21 | ||
подскажите пож-та есть ли какая-то секция в pro-файле (типа SOURCES, HEADERS, DEFINES...), отвечающая за тип сборки проекта (debug или release) - хочу только для debug-версии программы определить какой-нибудь макрос, соответственно в release его автоматом не было бы "видно" (не определен)... слышала что вроде бы можно использовать такую конструкцию:
но этот макрос остается определенным и в release-версии... |
| Автор: rsm 26.5.2012, 18:14 |
| qDebug как раз для этого и предназначен, http://doc.qt.nokia.com/4.7-snapshot/debug.html. |
| Автор: kuvshinka 26.5.2012, 18:37 |
| rsm: при чем тут вообще qDebug? в примере выше он используется для понимания того, определен ли в данный момент макрос MYMACROS или нет? в таком примере получается, что и при debug, и при release-сборке он всегда определен...вопрос заключается в том, как описать макрос так, чтобы он был определен только при debug-сборке... |
| Автор: _GRIN_ 26.5.2012, 22:26 | ||
kuvshinka, примерно так:
подробнее тут: http://qt-project.org/doc/qt-4.8/qmake-function-reference.html#config-config |
| Автор: kuvshinka 27.5.2012, 17:47 |
| _GRIN_: по-вашему все равно не получается нужного результата - при release-сборке (тип сборки программы меняю через "пункт меню" (слева в креаторе) Настройки - изменить конфигурацию сборки и Build configurtation for Program1) макрос все равно остается определен (срабатывает соответствующий qDebug из моего примера выше...)... |
| Автор: _GRIN_ 27.5.2012, 22:29 |
| kuvshinka, отредактировал предыдущий пост - убрал лишнюю связку debug | release (она от копипаста из одного из моих прошников осталась =) ) проверь - всё должно работать. Не забудь при смене варианта сборки выполнить qmake (из креатора: Build -> Run qmake). |
| Автор: kuvshinka 28.5.2012, 20:14 |
| _GRIN_: может и должно так работать, но не работает....да и я уже так пробовала (по-моему уже по-всякому пробовала)...непонятно что не так...может так нельзя сделать в принципе? |
| Автор: _GRIN_ 29.5.2012, 10:26 | ||||||
*.pro file:
main.cpp:
лог:
P.S. не забываем удалять makefile от прошлой сборки (в креаторе Build -> Clean All) |
| Автор: math64 29.5.2012, 13:02 |
| Есть макрос QT_NO_DEBUG - так что свой можно не определять. Но makefile нужно перегенерить, по крайней мере в Linux - там только один Makefile, в Windows - три: Makefile , Makefile.debug и Makefile.release |