crossplatform.ru

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


  Ответ в qmake и переменные
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
SABROG Дата 22.4.2009, 8:06
 
Цитата(Litkevich Yuriy @ 22.4.2009, 1:49) *
А ларчик-то просто открывался


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

Кстати для эксперимента попробуй в макрос символ "#" впихнуть, тоже задачка интересная :)
Litkevich Yuriy Дата 22.4.2009, 0:49
 
Цитата(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, 0:10
  Чтобы можно было сравнивать или подставлять в .cpp файле? Объявить просто дефайн не вопрос
DEFINES *= MY_VAR


, а вот, чтобы присвоить ему что-то...
Litkevich Yuriy Дата 21.4.2009, 23:54
  вот и я созрел, до запихивания своих переменных в make-файл.

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

SABROG, может ты с этим qmak'ом разобрался?
SABROG Дата 3.2.2009, 18:53
  В общем углубился чуток. Нашел раздел в ассистенте "Customizing Makefile Output". Потом пару ссылок нарыл: одна, вторая

Надо разбираться...
SABROG Дата 3.2.2009, 18:19
 
Цитата(Litkevich Yuriy @ 3.2.2009, 18:17) *
дак заведи ее на своей машине, я все самопальные проверил, работают.


Да я то заведу :) А если возникнет ситуация, когда такую переменную надо заводить динамически, при сборке проекта юзерами программы?

Нет, ну обычно в INSTALL пишут типа пропишите то, сё ручками, если хотите чего-то. До полного автоматизма похоже не довести.
kwisp Дата 3.2.2009, 18:17
  SABROG,
а говоришь не можешь понять.:)
я как то задумался над схожей задачей хотел чтобы при каждом создании makefile с помощью qmake в дефайны добавлялась версия сборки. по сути обыкновенный счетчик запусков qmake. естественно что бы не ручками её писать каждый раз а чтоб она автоматом инкрементировалась каждый раз. но потом появились задачи поважнее и я не выполнил желаемого:(...
Litkevich Yuriy Дата 3.2.2009, 18:17
 
Цитата(kwisp @ 3.2.2009, 20:37) *
во как.
В Qt4 переменная QTDIR используется только программаой (сценарием) configure.

Цитата(SABROG @ 3.2.2009, 20:57) *
В том то и дело, хотелось бы, чтобы эта переменная динамически заводилась в makefile'е с нужным значением.
дак заведи ее на своей машине, я все самопальные проверил, работают.
SABROG Дата 3.2.2009, 18:13
  В общем я сегодня никого понять не могу.

Как бы там ни было, скобочки никак не исключают того, что две конструкции синонимы. Просто выходит, что лучше сразу привыкать писать в скобочках, чтобы небыло проблем.
kwisp Дата 3.2.2009, 18:05
 
Цитата
kwisp, это стандартные ключи makefile'а, которые относятся к компилятору. Просто тролли их позаимстовали, тут нет чуда :)


понятно что чуда нет. я про то что поразному себя ведет qmake.
а на счет синонимов прав твой аппонент т.к.
MyVar = test
MyVar2 = $$MyVarmyvar2_
MyVar3 = $${MyVar}_myvar3_
message($$MyVar2)
message($$MyVar3)


очевидно что не сработает. скобочки нужны точно для того же что и скобочки в работе с переменными в юниксе. чтобы отделить имя переменной от последующего текста.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 19:37