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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0  (Прочитано 22460 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Сентябрь 10, 2008, 20:45 »

Здравствуйте!


Имею Linux систему, в которой в данный момент установлена Qt 4.3.0. Решил установить Qt 4.4.1, но этого пакета нет в репозитарии.

Выкачал с официального сайта Qt 4.4.1 и решил его установить из исходников. Для configure никаких опций не задавал, компилировал как есть. Согласно Readme, после установки, Qt 4.4.1 должен был разместиться в /usr/local/Trolltech/Qt-4.4.1. Именно туда он и установился.

Код:
# ls -1 /usr/local/Trolltech/Qt-4.4.1
bin
demos
doc
examples
include
lib
mkspecs
phrasebooks
plugins
translations
q3porting.xml

Пакет Qt 4.3.0 из системы не удалял, основываясь на том, что Qt вроде как для каждой версии библиотеки держит отдельную папку с либами. Пакет Qt 4.3.0 у меня разложен так

/usr/share/qt4 - основная директория библиотеки, включает bin, doc, include...
/usr/lib - туда положены файлы вида libQtCore.so.4, libQtCore.so.4.3, libQtCore.so.4.3.0, libQtXml.so.4, libQtXml.so.4.3, libQtXml.so.4.3.0 ...
/usr/bin - туда помещен только файл qdbus


Вопрос такой - что теперь нужно сделать, чтобы заработала либа 4.4.1? Хочу обойтись только созданием симлинков.


Дополнительные вопросы

1. А надо ли удалять пакеты с qt 4.3.0 ?
2. А если удалить 4.3.0, будут ли работать программы, собранные под 4.3.0 с либой 4.4.1 (после того как размещу ее канадо)?
Записан

Собираю информацию по крупицам
http://webhamster.ru
ритт
Гость
« Ответ #1 : Сентябрь 10, 2008, 21:59 »

1) какой дистрибутив linux? /* почему все так попривыкали писать winxp sp2, но linux - просто linux. linux - это вообще ядро! */
2) стоят ли dev-пакеты?

> Вопрос такой - что теперь нужно сделать, чтобы заработала либа 4.4.1?
делать ничего не надо - кутэ уже фунциклирует

в большинстве случаев все программы, собранные с более ранней версией Qt, будут работать с более новой версией (в большинстве, но не во всех - хоть тролли и сохраняют бинарную совместимость между минорками, при некорректной настройке/сборке всегда можно отправить совместимость под хвост коту)

если стоят все необходимые dev-пакеты, думаю, лучшим выбором будет полностью заменить 4.3.0 на 4.4.1 (если, конечно, 4.3.0 не нужна для разработки или ещё зачем) - можно просто заменить оригинальные файлы/папки от 4.3.0 симлинками на соответствующие файлы/папки от 4.4.1
Записан
ритт
Гость
« Ответ #2 : Сентябрь 10, 2008, 22:04 »

я не настаиваю на этом способе установки, но мне он нравится больше (чем установка в /usr/local или /usr, зачастую проводимая в распространённых дистрибутивах) - сам его и использую:

Цитировать
== Dependencies ==

=== Required ===
* X Window System

=== Optional ===
* Xinerama provided by and X Window System
* Xfixes provided by and X Window System
* Glib2
* FreeType
* FontConfig
* D-BUS
* OpenSSL
* LibTIFF
* libjpeg
* libmng
* NAS
* CUPS
* MySQL
* PostgreSQL
* unixODBC
* SQLite
* SQLite3
* Firebird

== Configuration Information ==

If you would like to compile with MySQL support add the following to the configure command:

 -plugin-sql-mysql -I/usr/include/mysql

If you would like to compile with PostgreSQL support add the following to the configure command:

 -plugin-sql-psql -I/usr/include/postgresql/server

If you would like to compile with SQLite support add the following to the configure command:

 -plugin-sql-sqlite2 -system-sqlite

If you would like to compile with SQLite3 support add the following to the configure command:

 -plugin-sql-sqlite -system-sqlite

If you would like to compile with unixODBC support add the following to the configure command:

 -plugin-sql-odbc

If you would like to compile with NAS support add the following to the configure command:

 -system-nas-sound

If you would like to disable Qt 3 support functionality add the following to the configure command:

 -no-qt3support

If your X Window System is NOT Xorg, then add to configure:

 -no-xfixes

If you want optimized qmake tool add the following to the configure command:
 -optimized-qmake

If you would like to disable GLib event loop add the following to the configure command:

 -no-glib

Compile the package:

 mkdir -v /opt/qt-4.4.1 &&
 ln -v -sfn qt-4.4.1 /opt/qt4 &&
 ./configure -prefix /opt/qt4 \
     -libdir /opt/qt4/lib \
     -plugindir /opt/qt4/lib/plugins \
     -headerdir /opt/qt4/include \
     -datadir /opt/qt4/share \
     -translationdir /opt/qt4/share/translations \
     -docdir /opt/qt4/share/doc/qt \
     -demosdir /opt/qt4/share/demos \
     -examplesdir /opt/qt4/share/examples \
     -sysconfdir /etc/qt4 \
     -L/usr/lib \
     -qt-gif \
     -system-zlib \
     -system-libtiff \
     -system-libpng \
     -system-libmng \
     -system-libjpeg \
     -no-exceptions \
     -openssl \
     -opengl \
     -glib \
     -release &&
 make

Install the package

 make install
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #3 : Сентябрь 10, 2008, 22:54 »

1) какой дистрибутив linux? /* почему все так попривыкали писать winxp sp2, но linux - просто linux. linux - это вообще ядро! */

А я привык скрывать какой дистриб линуха у меня потому, что все сразу начинают советовать обновляться. И мне приходится долго объяснять почему я это делать не могу (это связано с разработкой под конкретное железо). У меня Ubuntu 7.04.


2) стоят ли dev-пакеты?

Да, стоят. libqt4-dev 4.3.0-4ubuntu1~fiesty1


> Вопрос такой - что теперь нужно сделать, чтобы заработала либа 4.4.1?

делать ничего не надо - кутэ уже фунциклирует

в большинстве случаев все программы, собранные с более ранней версией Qt, будут работать с более новой версией (в большинстве, но не во всех - хоть тролли и сохраняют бинарную совместимость между минорками, при некорректной настройке/сборке всегда можно отправить совместимость под хвост коту)

если стоят все необходимые dev-пакеты, думаю, лучшим выбором будет полностью заменить 4.3.0 на 4.4.1 (если, конечно, 4.3.0 не нужна для разработки или ещё зачем) - можно просто заменить оригинальные файлы/папки от 4.3.0 симлинками на соответствующие файлы/папки от 4.4.1

Мда, попытался удалить пакет libqt4-core (4.3.0), вместе с пакетом будет удалено половина системы. Придется вручную заменять и распихивать.
Записан

Собираю информацию по крупицам
http://webhamster.ru
ритт
Гость
« Ответ #4 : Сентябрь 11, 2008, 10:48 »

по ушам надо стучать тем, кто советует обновиться Улыбающийся
7.04 - тоже неплохой дистр был

про dev-пакеты: я спрашивал не про кутёвые dev-пакеты, а про dev-пакеты, от которых зависит корректная сборка самой кутэ. к примеру, если 4.3.0 была собрана с полной поддержкой иксов, а теперь соберём 4.4.1 с частичной (поддержкой иксов) и заменим ею 4.3.0, многие программы не смогут корректно работать...а то и вооще запускаться

удалять libqt4-core (4.3.0) не нужно. я советовал просто забэкапить оригинальные файлы и заменить их симлинками на соответствующие от 4.4.1
...и на всякий случай можно прописать /usr/local/Trolltech/Qt-4.4.1/lib в /etc/ld.so.conf
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Сентябрь 11, 2008, 12:23 »

Да ничего вообще делать не нужно. Просто делаешь симлинк
ln -s /usr/local/Trolltech/Qt-4.4.1/bin/qmake /usr/bin/qmake_4.4.1 и все. Проверено временем. Можно так хоть 10 разных сборок кути держать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ритт
Гость
« Ответ #6 : Сентябрь 11, 2008, 12:28 »

это чтобы собирать - qmake знает все пути и сам всё разрулит...
а чтобы старые проги работали с новым Qt...qmake'а будет мало
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Сентябрь 11, 2008, 12:55 »

Старые проги будут работать со старой кутей, пока их не перекомпилировать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ритт
Гость
« Ответ #8 : Сентябрь 11, 2008, 13:54 »

я так понял, что старая версия не нужна для разработки - в таком случае не вижу смысла оставлять её, если можно перейти на более новую...
Записан
vaprele07
Гость
« Ответ #9 : Сентябрь 11, 2008, 14:04 »

в убунту есть /etc/alternatives где живет линка на qmake обычно меняют ее
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #10 : Сентябрь 11, 2008, 14:45 »

мне кажется нужно играться с переменными среды

ставим qt  в папку /home/user/local

набираем
Цитировать
env

и видим типа

Цитировать
PATH=/opt/intel/cc/9.1.047/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
LD_LIBRARY_PATH=/home/eugene/local/lib

нужно изменить для запуска программы переменные среды PATH и LD_LIBRARY_PATH ( возможно еще что -то)



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

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #11 : Сентябрь 11, 2008, 16:38 »

У меня кути вообще нет в PATH и LD_LIBRARY_PATH. Я уже говорил, от какой кути используешь qmake, с той и будет работать. Как мне кажется, где-то в исполняемом файле это завязано.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #12 : Сентябрь 11, 2008, 18:11 »

переменные среды относятся к вашему шелу  - это или bash или zsh

так что если вы работает в консолке - переменные есть
подробнее тут
http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D1%80
%D0%B5%D0%B4%D1%8B
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #13 : Сентябрь 11, 2008, 18:18 »

Если все таки переменные среды, то объясни такой момент. У меня стоит 2 кути:
1. /opt/qt/4.3.0
2. /opt/qt/4.4.1
Если я компилирую с использованием qmake от 1, то приложение выдает aboutQt() 4.3.0, и соответственно от 2 4.4.1. Переменные среды не трогаю.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #14 : Сентябрь 11, 2008, 18:24 »

ты правильно выставляешь переменные среды
QTDIR и QTMAKESPEC
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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