crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> qmake и переменные
Litkevich Yuriy
  опции профиля:
сообщение 21.4.2009, 23:54
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


вот и я созрел, до запихивания своих переменных в make-файл.

надо сделать подобие
#define MY_VAR "myVar"
за пределами программы, а именно а pro-файле.

SABROG, может ты с этим qmak'ом разобрался?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 22.4.2009, 0:10
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Чтобы можно было сравнивать или подставлять в .cpp файле? Объявить просто дефайн не вопрос
DEFINES *= MY_VAR


, а вот, чтобы присвоить ему что-то...

Сообщение отредактировал SABROG - 22.4.2009, 0:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.4.2009, 0:49
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 22.4.2009, 4:10) *
а вот, чтобы присвоить ему что-то...
именно это.
Т.е. возникла необходимость написать в pro-файле (это фантазия):
MY_VAR "myVarvalue"

а в коде, например, сделать так:
QString str = MY_VAR


видимо надо приползти к этому (это make-файл):
-DMY_VAR=$(MY_VAR_)

где MY_VAR_ промежуточная переменная

методом научного тыка (редактирования make-файла) пришёл к такой записи:
DEFINES       = -DMY_VAR="\"myVarvalue\""


А ларчик-то просто открывался. только для строковых констант неудобство имеется: приходится три слэша писать
pro-file:
DEFINES       += "MY_VAR=\\\"myVarvalue\\\""

make-file:
DEFINES       = -DMY_VAR=\"myVarvalue\"

ну и в коде получим аналог:
#define MY_VAR "myVarvalue"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 22.4.2009, 8:06
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 22.4.2009, 1:49) *
А ларчик-то просто открывался


Ага, так просто, что я с этим до 4 утра просидел. Дошел аккурат до одинарного слэша, но всегда получался int вместо строки, а вот до тройного не додумался. А вообще для компилятора мягкотелых такое работает?

Кстати для эксперимента попробуй в макрос символ "#" впихнуть, тоже задачка интересная :)

Сообщение отредактировал SABROG - 22.4.2009, 8:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 4:36