Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > выбор версии йе из установленных


Автор: aikidzin 26.2.2011, 18:58
Добрый день. столкнулся с проблемой определения версии qt под Линукс.
Нужно в профайле определить  под каким qt собирается проект, и собрать соответствующие папки. перед вызовом профайла устанавливается переменная окружения QTDIR. 
Проблема состоит в том, что не на всех линукс QTDIR принимает именно это значение /usr/share/qt*

профайл содержит
TEMPLATE = subdirs
ver=$$(QTDIR)
contains(ver, /usr/share/qt3){
SUBDIRS    = demo1 demo2 
}
else {
SUBDIRS    = demo3 demo4
}

Пробовал так,
ver = $$[QT_MAJOR_VERSION]
count($$ver,3){
SUBDIRS    = demo1 demo2
}
else {
SUBDIRS    = demo3 demo4
}
но если стоит одновременно и qt3 и qt4, то собирается всегда qt4. а как сделать так, чтобы можно было выбрать qt3?
я так полагаю, что нужно делать с использованием переменных qmake, но как? подскажите пожалуйста

Автор: bsa 26.2.2011, 20:18
aikidzin, следует отказаться от использования qmake в пользу CMake.

Автор: aikidzin 27.2.2011, 07:53
К сожалению проект большой, сборка некоторых модулей уже написана специально для QT. Поэтому нужно искать решение под qmake. 

Автор: bsa 27.2.2011, 12:49
aikidzin, тогда введи еще одну переменную, которую можно задавать из командной строки для ручного выбора версии Qt.

Хотя, проще использовать qmake от нужной тебе версии Qt.

Автор: aikidzin 27.2.2011, 14:25
На моей машине в usr/bin/
находятся qmake-qt3, qmake-qt4 и символическая ссылка qmake на qmake-qt3
На всех ли линукс-машинах файлы называются так?

Автор: maint 27.2.2011, 16:51
в федоре 14 вроде так. Надо посматривать на машинах командой 
Код

env | grep QT

переменные среды точно укажут, на что заточена система

Автор: bsa 27.2.2011, 21:17
aikidzin, существует переменная http://doc.qt.nokia.com/4.7/qmake-variable-reference.html#qmake, указывающая путь к запущенному qmake. Ведь тебе необходимо собирать на одной машине и для Qt3, и для Qt4. Поэтому совершенно не важно, где у тебя Qt фактически находится. Главное сгенерировать Makefile используя qmake от нужной версии Qt.

Добавлено через 3 минуты и 10 секунд
maint, у меня на ubuntu QTDIR не установлена. Возможно, потому что устанавливалось вручную (configure,make, make install)

Автор: maint 27.2.2011, 21:33
Цитата

maint, у меня на ubuntu QTDIR не установлена. Возможно, потому что устанавливалось вручную (configure,make, make install) 

по моему, эти переменные среды, в системный профайл и шаблоны сборщики дистрибутива суют. В редхаде так. Действительно, не слишком показатель.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)