Название: Две версии Qt на одной машине Отправлено: troorl от Январь 06, 2008, 17:28 Привет. У меня в Ubuntu установлена Qt4.3. Я не хочу замусоривать систему, но в то же время мне нужно также использовать Qt4.4. Есть ли какие-то рекомендации по данному поводу, по переменным среды и прочему? Хотелось бы максимально удобно всё это сделать.
Название: Re: Две версии Qt на одной машине Отправлено: Пантер от Январь 06, 2008, 17:56 Я делаю так:
1. Конфигурю с префиксом /opt/qt/4.4 2. make 3. sudo make install 4. Делаю симлинк: sudo ln -s /opt/qt/4.4/bin/qmake /usr/bin/qmake_4.4 Думаю далее все ясно. ;) Название: Re: Две версии Qt на одной машине Отправлено: troorl от Январь 06, 2008, 18:29 То есть новый qmake сам создаст Makefile с нужными путями и программа слинкуется с новой версией Qt?
Название: Re: Две версии Qt на одной машине Отправлено: Пантер от Январь 06, 2008, 19:38 Ага. Ты все правильно понял. :) Можно хоть 10 версий использовать.
Название: Re: Две версии Qt на одной машине Отправлено: troorl от Январь 06, 2008, 19:41 Спасибо, так и сделаю :)
Название: Re: Две версии Qt на одной машине Отправлено: silart от Май 20, 2008, 05:16 Это все в для Linux походу? Подскажите пожалуйста как тоже самое под Windows сделать. Конкретно мне нужно чтобы было 2 версии одной и той же Qt: static и shared. Использую Qt 4.2.2 и MSVC 2005. Там нужно переменные среды как-то задавать? Если кто делал, хотелось бы услышать рецепт! :)
Название: Re: Две версии Qt на одной машине Отправлено: lit-uriy от Май 20, 2008, 08:56 я не для студии делал, но может на основе моего варианта сделаешь для студии (см. тут (http://www.forum.crossplatform.ru/index.php?showtopic=724)), т.е место про bat'ник, вроде в студии есть своя командная строка может туда это все определить.
--- P.S. я со студией не работал, тебе виднее Название: Re: Две версии Qt на одной машине Отправлено: Hellraiser от Май 20, 2008, 18:30 Qt ищет библиотеки по переменной среды QTDIR, которая должна указывать на нужную версию. Соответственно, следующие варианты решения:
1. Если компиляция через командную строку, то либо пишем батник, либо явно указываем перед вызовом qmake переменные QTDIR и PATH. Например Код: SET QTDIR=C:\QT\4.3.4-static Название: Re: Две версии Qt на одной машине Отправлено: Kosh от Май 21, 2008, 09:55 Вариант для Windows:
1. Все переменные среды, относящиеся к QT переносим в пользовательские переменные. 2. Создаем нового пользователя. 3. Ставим под ним другую QT. 4. Проверяем, чтобы, переменные для новой QT стояли в пользовательских переменных. Название: Re: Две версии Qt на одной машине Отправлено: silart от Май 21, 2008, 10:10 Вариант для Windows: 1. Все переменные среды, относящиеся к QT переносим в пользовательские переменные. 2. Создаем нового пользователя. 3. Ставим под ним другую QT. 4. Проверяем, чтобы, переменные для новой QT стояли в пользовательских переменных. Неужели все так сложно? Еще и пользователя делать нужно... А если у меня несколько версий (скажем штук пять), то это надо 10 пользователей делать чтоли? Может можно эти переменные как-то в одном пользователе изменять? Название: Re: Две версии Qt на одной машине Отправлено: silart от Май 21, 2008, 10:20 Qt ищет библиотеки по переменной среды QTDIR, которая должна указывать на нужную версию. Соответственно, следующие варианты решения: Вот с этого места пожалуйста подробнее поясните. Каким образом можно менять переменные среды в студии. Помимо Qt у студии есть еще свои переменные (такие например как INCLUDE, LIB, PATH, и т. д. ) (смотрим файлик C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat). Когда компилируешь из командной строки, приходится запускать этот файлик, чтобы активировались эти переменные среды. Причем эти переменные не видны в Windows (Панель управления/Система/дополнительно/Переменные среды), и где их тогда можно поправить? Очевидно нужно туда еще дописать переменные среды от Qt и менять их по мере необходимости. Может кто разбирался, подскажите пожалуйста.2. При сборке проекта в студии можно оперировать переопределением этих переменных в файле проекта. Именно так и поступает интегратор при работе с двумя версиями. Название: Re: Две версии Qt на одной машине Отправлено: Hellraiser от Май 22, 2008, 16:01 Цитировать Вот с этого места пожалуйста подробнее поясните. Каким образом можно менять переменные среды в студии. Пусть переменная среды QTDIR указывает на папку с shared версией Qt и в отдельной папке есть библиотеки для static версии.1. Project -> Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions. Для shared указываем QT_DLL, для static - убираем. Для debug - QT_DEBUG, для release - убираем. 2. Project -> Properties -> Linker -> General -> Additional Library Directories. Прописываем абсолютный путь к требуемым библиотекам. Все это относится только к сборке проекта из IDE. Название: Re: Две версии Qt на одной машине Отправлено: silart от Июнь 20, 2008, 11:46 Товарищи, кто-нибудь знает каким образом задаются переменные среды в самой студии? Такие, например, как $(OutDir), $(ProjectName) и т. д. Везде рылся негде не обнаружил. Ведь было бы удобно, если QTDIR можно было бы задавать в самом проекте. Когда создается проект в одной какой-то версии Qt (static или shared) и при этом если меняем QTDIR в системе, значение QTDIR остается прежним. Поэтому приходится указывать абсолютные пути к библиотекам.
Просто указывать абсолютный путь не есть гуд! Название: Re: Две версии Qt на одной машине Отправлено: crossly от Июнь 20, 2008, 12:31 в настройках интегратора есть версии библиотек.... далее в проекте нужно только указать версию для проекта и все... системная переменная QTDIR вообще не нужна...
Название: Re: Две версии Qt на одной машине Отправлено: silart от Июнь 21, 2008, 12:24 в настройках интегратора есть версии библиотек.... далее в проекте нужно только указать версию для проекта и все... системная переменная QTDIR вообще не нужна... Объясните пожалуйста как вы ей пользуетесь и на что она влияет. Что она заменяет? Просто я уже давно бьюсь со всем этим, хочу разобраться как следует правильно Qt установить. Я ее всяко крутил и не помогает, только QT_DLL и абсолютные пути к либам помогли. Хотелось чтоб можно было легко и static и shared версии проекта собирать. Да еще в коммерческой версии 4.4 Qt для Windows CE есть, с ней я еще не разбирался. Можно интересно так сделать, чтобы легко перенастроить Qt на сборку проекта для WinXP или для WinCE?Название: Re: Две версии Qt на одной машине Отправлено: crossly от Июнь 23, 2008, 09:04 ни студии ни интегратора под рукой нету.... я по памяти... тебе просто в настройках проек4та нужно указать какую верисию юилиотеки использовать.... версии вписываются в настройках интегратора..
Название: Re: Две версии Qt на одной машине Отправлено: silart от Июнь 24, 2008, 18:12 ни студии ни интегратора под рукой нету.... я по памяти... тебе просто в настройках проек4та нужно указать какую верисию юилиотеки использовать.... версии вписываются в настройках интегратора.. Еще че-то в настройках проекта крутить надо? Че-то я не видел там ничего. Какую версию Qt использовать в настройках студии устанавливается. Только я понять не могу что это меняет. В проекте все относительно QTDIR. Причем значение QTDIR сохраняется в проекте и мне непонятно как его можно изменить. Даже если меняешь версию Qt в настройках студии, QTDIR остается прежним, каким его присвоили при создании. Также непонятно как изменить другие переменные среды проекта. В настройках я такого не встретил.Название: Re: Две версии Qt на одной машине Отправлено: Godfather от Июнь 25, 2008, 12:04 глянь в VS -> Tools -> Options -> Qt -> Builds
Название: Re: Две версии Qt на одной машине Отправлено: crossly от Июнь 27, 2008, 08:43 QTDIR тебе вообще не нужно....
Название: Re: Две версии Qt на одной машине Отправлено: Godfather от Июнь 27, 2008, 09:56 ну по идее все пути в настройках проекта типа Additional Include Pathes задаются через $(QtDir)\
Название: Re: Две версии Qt на одной машине Отправлено: DarkPhoenix от Июнь 27, 2008, 11:22 что мешает использовать Eclipse?
там есть выбор версии с которой работает проект. Название: Re: Две версии Qt на одной машине Отправлено: Godfather от Июнь 27, 2008, 11:27 в VS тоже самое
и помойму Эклипс предназначена в первую очередь для явы Название: Re: Две версии Qt на одной машине Отправлено: DarkPhoenix от Июнь 27, 2008, 11:43 Не только, есть блоки для разработки много на чем.
например у меня нет ничего для разработки на Java, только С++ с CDT 5.0 вчера поставил, еще не успел оценить. минус только один - ресурсо-прожорливость, но опять же можно подправить, а Ганимед по мимолетному взгляду стал быстрей Европы. Название: Re: Две версии Qt на одной машине Отправлено: silart от Июнь 27, 2008, 16:41 что мешает использовать Eclipse? там есть выбор версии с которой работает проект. Что это такое и можно ее прикрутить к MSVC++ ? Название: Re: Две версии Qt на одной машине Отправлено: silart от Июнь 27, 2008, 16:46 Товарищи, вот я установил 2 версии QT (static и shared). Находятся в разных папках. Если проект был создан в какой-либо из версий, то для перекомпиляции ее в другой, нужно не только либы прямым путем указывать, но инклуды тоже. Если инклуды не указать, а старые оставить, возникают множественные ворнинги, но проект все равно собирается. Но это ведь большой геморрой, абсолютные пути. Почему нельзя менять QTDIR в проекте? Кто-нибудь ваще использует студию для работы с Qt? ведь это же серьезная проблема, и никто не может дать внятного ответа как ее решить.
Название: Re: Две версии Qt на одной машине Отправлено: Kosh от Ноябрь 25, 2010, 14:29 У меня VS2005 с интегратором и Qt-4.0.0
Возникла необходимость собирать проект и с dll и статическую. В VS -> Tools -> Options -> Qt -> Builds задала пути для обеих библиотек, но вот создать проект под студию из .pro не получается, если путь в Qt -> Builds по умолчанию и QTDIR не совпадают. выдает следующее: Код: --- (Import): Generating new project of musicplayer.pro file Ещё нашла где-то в настройках проекта возможность вставить команду до компиляжа, после компиляжа, до линковки. Наивно думала, что это спасёт, если в качестве команды указать "SET QTDIR=.....". Но, судя по логу, команды до компиляжа запускаются из одного временного батника, а компилятор из другого, т.е. переменная восстановила своё прежнее значение. ============ ПРОБЛЕМА РЕШЕНА =============== 1. Пусть имеем две библиотеки в каталогах c:\qt-4.4.0-static и c:\qt-4.4.0-share 2. Из переменных окружения вышибаем переменную QTDIR (я ещё удивилась, чего это она не упоминается в файле инсталляции....) 3. В студии (у меня VS2005 с интегратором) выбираем Tools -> Options -> Qt -> Builds. Добавляем туда пути до библиотек. 4. Там же устанавливаем нужную по умолчанию. 5. Выбираем в меню Qt->Open Solution From .pro File. Создаётся студийный проект под заданную по умолчанию библиотеку. Всё готово! 6. Нужно поменять библиотеку, повторяем п.4. и п.5. При этом оно предлагает существующий проект переименовать или перезаписать. Если бы crossly высказался более определённо, а не Цитировать QTDIR тебе вообще не нужно.... дошло бы раньше. Но всё равно , спасибо crossly и Godfather. |