Russian Qt Forum
Апрель 26, 2024, 11:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: define in *.pro  (Прочитано 8250 раз)
Radmir
Гость
« : Июль 31, 2014, 17:37 »

Поделитесь уважаемые, как задать в *.pro переменную типа define для debug версии проекта и не задать для релиза. Я замучился, как ни задам, либо в обоих есть переменная, либо в обоих нет.

Радмир
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июль 31, 2014, 18:24 »

Судя по доке: http://qt-project.org/doc/qt-4.8/qmake-tutorial.html
Код:
debug { 
         CONFIG += console
     }

Аналогично условие ставится и для релиза Улыбающийся


UPDATE.
А тут показано как дефайны свои делать: http://stackoverflow.com/questions/3348711/add-a-define-to-qmake-with-a-value
« Последнее редактирование: Июль 31, 2014, 18:25 от gil9red » Записан

Radmir
Гость
« Ответ #2 : Июль 31, 2014, 18:35 »

Судя по доке: http://qt-project.org/doc/qt-4.8/qmake-tutorial.html
Код:
debug { 
         CONFIG += console
     }

Аналогично условие ставится и для релиза Улыбающийся


UPDATE.
А тут показано как дефайны свои делать: http://stackoverflow.com/questions/3348711/add-a-define-to-qmake-with-a-value

Вы не поняли вопрос:
Я хочу задать переменную, (типа как в программе мы пишем #define Pi) для конфигурации debug и не задавать для конфигурации release.
В проекте мне не удалось, пришлось в программе задать:

#ifdef QT_NO_DEBUG
#define Pi
#endif

Как видите, чайник предполагает, а Qt располагает...
Радмир
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Июль 31, 2014, 18:56 »

Судя по доке: http://qt-project.org/doc/qt-4.8/qmake-tutorial.html
Код:
debug { 
         CONFIG += console
     }

Аналогично условие ставится и для релиза Улыбающийся


UPDATE.
А тут показано как дефайны свои делать: http://stackoverflow.com/questions/3348711/add-a-define-to-qmake-with-a-value

Вы не поняли вопрос:
Я хочу задать переменную, (типа как в программе мы пишем #define Pi) для конфигурации debug и не задавать для конфигурации release.
В проекте мне не удалось, пришлось в программе задать:

#ifdef QT_NO_DEBUG
#define Pi
#endif

Как видите, чайник предполагает, а Qt располагает...
Радмир

Я вам описал как писать условия в pro файле на примере debug, а в ссылке показано как пользовательские дефайны в pro описывать, соедините вместе и получите что хотели
Записан

kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #4 : Июль 31, 2014, 23:07 »

debug: DEFINES += MYDEFINE
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Radmir
Гость
« Ответ #5 : Август 01, 2014, 06:27 »

debug: DEFINES += MYDEFINE
А я вам написал, что если одну и туже переменную задать в строчке
debug: DEFINES += MYDEFINE
в строчке release,
release: DEFINES -= MYDEFINE
то в обоих makefile-ах будут обе переменные,
 В замешательстве
Радмир
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #6 : Август 01, 2014, 11:32 »

release: DEFINES -= MYDEFINE — зачем это вообще писать? debug: DEFINES += MYDEFINE задаст MYDEFINE только для дебага
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Radmir
Гость
« Ответ #7 : Август 01, 2014, 17:51 »

debug: DEFINES += MYDEFINE
Я не знаю, почему вы не принимаете, то что я пишу: я говорю, что определить переменную для одного релиза или дибага невозможно.
Вот строка из мейкфайла дибаг
DEFINES       = -DQUAZIP_BUILD -DMYDEFINE -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
и строка из мейкфайла релиз
DEFINES       = -DQUAZIP_BUILD -DMYDEFINE -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED

Как видите опция -DMYDEFINE есть в обоих мейках!
Прошу больше не дискутировать, просто считайте вопрос закрытым, или пишите в личку.

Радмир.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #8 : Август 04, 2014, 15:53 »

Судя по доке: http://qt-project.org/doc/qt-4.8/qmake-tutorial.html
Код:
debug { 
         CONFIG += console
     }
вот поверил на слово человеку, а кода под рукой не оказалось.

правильно так:
Код:
CONFIG(release, debug|release): IS_RELEASE_BUILD = 1
isEmpty(IS_RELEASE_BUILD): DEFINES += DEFINE_DEBUG
else: DEFINES += DEFINE_RELEASE
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #9 : Август 04, 2014, 16:09 »

Действительно, а почему первый вариант не работает? Я тоже в коде прописал - убедился.
В чём дело?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #10 : Август 04, 2014, 16:42 »

потому что debug надо самому добавлять в CONFIG. по ссылке: CONFIG += qt debug
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #11 : Август 04, 2014, 16:53 »

Быть маркером - это его основное назначение.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #12 : Август 04, 2014, 17:58 »

я проверил у себя под виндой с официальной сборкой Qt (которая debug-and-release). Оказывается, при любом типе сборке проекта в CONFIG будут строки debug, release, и debug_and_release.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #13 : Август 04, 2014, 20:54 »

при сталине в 4.8.5 такой херни нету!
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.057 секунд. Запросов: 23.