RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Beyond Linux From Scratch. Версия 6.0

Часть VIII. X + Менеджеры окон

Qt-3.3.3

Введение в Qt

Пакет Qt содержит C++ GUI-библиотеку. Она полезна для создания графических приложений или исполнения графических приложений, которые динамически сликованы с библиотекой Qt. Одним из наибольших пользователей Qt является среда KDE.

Информация о пакете

Зависимости Qt

Требуемые

Глава 25. Система X Window.

Рекомендованные

libjpeg-6b и libmng-1.0.8.

Опционально

NAS-1.6, CUPS-1.1.23, MySQL-4.1.8a, PostgreSQL-7.4.6, SQLite, Firebird и unixODBC .

Установка Qt

Есть несколько способов установки такого сложного пакета, как Qt. Файлы не полностью позиционно независимы. Процедура установки выполняет программу pkg-config для определения положения исполняемых файлов пакета, библиотек, заголовков и других файлов. Для Qt pkg-config будет искать файл lib/pkgconfig/qt-mt.pc, который должен быть изменен при перемещении пакета. Этот файл правильно настраивается процессами сборки.

Местом установки файлов по умолчанию является /usr/local/qt/. Многие коммерческие дистрибутивы размещают файлы в системной иерархии /usr. Также пакет может быть установлен в любой произвольный каталог.

Этот раздел покажет два различных способа.

[Замечание]

Замечание

Время сборки Qt достаточно большое. Если Вы хотите сэкономить время, и Вам не нужны учебники и примеры, то измените первую строчку команды make на:

make sub-tools

Метод 1: установка в иерархию /usr

Преимуществом этого способа является то, что нет необходимости обновлять файлы /etc/ld.so.conf или /etc/man.conf. Файлы пакета распространяются в пределах нескольких подкаталогов в иерархии /usr. Это способ, используемый в большинстве коммерческих дистрибутивов.


sed -i "s:cp -f:install:" mkspecs/linux-g++/qmake.conf &&
bash
export PATH=$PWD/bin:$PATH &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
./configure -prefix /usr -docdir /usr/share/doc/qt \
            -headerdir /usr/include/qt -plugindir /usr/lib/qt/plugins \
            -datadir /usr/share/qt -translationdir \
            /usr/share/qt/translations -sysconfdir /etc/qt -qt-gif \
            -system-zlib -system-libmng -no-exceptions -thread \
            -plugin-imgfmt-png -system-libjpeg -system-libpng &&
find -type f -name Makefile | xargs sed -i "s@-Wl,-rpath,/usr/lib@@g" &&
make &&
make install &&
ln -sf libqt-mt.so /usr/lib/libqt.so &&
rm /usr/bin/qmake &&
install -m755 -oroot -groot qmake/qmake /usr/bin &&
cp -r doc/man /usr/share &&
cp -r examples /usr/share/doc/qt &&
exit

Метод 2: установка в /opt

Этот способ рекомендуется разработчиками Qt . Его преимуществом является содержание всех файлов пакета, сосредоточенных в иерархии указанного каталога. При использовании этого способа любое обновление может быть сделано без перезаписи предыдущей установки, и пользователи могут легко вернуться на предыдущую версию изменением одной символической ссылки.

Разработчики Qt по умолчанию используют /usr/local/qt/, хотя эта процедура помещает файлы в /opt/qt-3.3.3/, а затем создает символическую ссылку на /opt/qt/.


bash
export QTDIR=$PWD &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
export PATH=$PWD/bin:$PATH &&
./configure -prefix /opt/qt-3.3.3 -qt-gif -system-libpng \
            -system-libmng -system-zlib -system-libjpeg -no-exceptions \
            -thread -plugin-imgfmt-png &&
make &&
make install &&
ln -sfn qt-3.3.3 /opt/qt &&
ln -s libqt-mt.so /opt/qt/lib/libqt.so &&
rm /opt/qt-3.3.3/bin/qmake &&
install -m755 -oroot -groot qmake/qmake /opt/qt-3.3.3/bin &&
cp -r doc/man /opt/qt/doc &&
cp -r examples /opt/qt/doc
exit
[Замечание]

Замечание

Если Вы поместите ключ -plugin-sql-[драйвер] в команду configure , то Вы также должны поместить и -I [/путь/к/sql/заголовкам] для того, чтобы make смог найти подходящие файлы заголовков.

Описание команд

sed -i "s:cp -f:install:" mkspecs/linux-g++/qmake.conf: install безопаснее, чем cp, когда используются библиотеки.

bash: Эта команда делает вход в подоболочку для изоляции изменений окружения.

export QTDIR=$PWD: Эта команда указывает, где размещен корень каталога Qt.

export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH: Эта команда позволяет еще не установленным библиотекам Qt быть использованными еще не установленными программами Qt.

export PATH=$PWD/bin:$PATH: Эта команда позволяет процессам сборки найти поддерживаемые исполняемые файлы.

-qt-gif: Этот ключ добавляет поддержку gif-файлов в библиотеках.

-system-zlib -system-libpng: Этот ключ заставляет инструкции сборки использовать разделяемые библиотеки, находящиеся в Вашей системе, вместо создания собственного набора библиотек поддержки этих функций.

-plugin-imgfmt-png: Этот ключ разрешает компоновку libpng.

-no-exceptions: Этот ключ выключает исключения кодирования, генерируемые C++-компилятором.

-thread: Этот ключ добавляет поддержку multi-threading.

find -type f -name Makefile | xargs sed -i "s@-Wl,-rpath,/usr/lib@@g": Эта команда удаляет жестко прописанные пути. В противном случае, uic всегда пытается запуститься с библиотеками Qt в /usr/lib.

ln -s libqt-mt.so /usr/lib/libqt.so: Эта команда позволяет скрипту configure найти рабочую установку Qt.

rm .../qmake; install -m755 -oroot -groot qmake/qmake .../bin: Программа qmake установлена некорректно командой make install. Эти две команды установят программу корректно.

cp -r doc/man /usr/share (или /opt/qt/doc): Эта команда устанавливает страницы man, которые пропущены в команде make install.

cp -r examples /usr/share/doc/qt (или /opt/qt/doc): Эта команда устанавливает примеры, которые пропущены в команде make install.

exit: Эта команда возвращает в основную оболочку и восстанавливает переменные окружения, установленные ранее.

Конфигурация Qt

Конфигурационная информация

Если Вы установили Qt, используя способ 2, то Вам понадобится обновить некоторые файлы конфигурации, чтобы Qt корректно находился другими пакетами и системными процессами.

Обновите файлы /etc/ld.so.conf и /etc/man.conf:


cat >> /etc/ld.so.conf << "EOF"
# Begin qt addition to /etc/ld.so.conf
/opt/qt/lib
# End qt addition
EOF
ldconfig

cat >> /etc/man.conf << "EOF"
# Begin qt addition to man.conf
MANPATH /opt/qt/doc/man
# End qt addition to man.conf
EOF

Обновите переменную окружения PKG_CONFIG_PATH в Вашем ~/.bash_profile или /etc/profile при помощи следующего:


PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig

Переменная окружения QTDIR должна быть установлена до сборки пакета, который зависит от Qt. Добавьте следующее в скрипт инициализации .bash_profile для каждого пользователя, который собирает пакеты с использованием библиотек Qt. Альтернативно, переменная может быть установлена в общесистемном файле /etc/profile.


export QTDIR=/opt/qt

Если Вы хотите иметь исполняемые файлы Qt в пути поиска файлов Вашей оболочки, то обновите переменную окружения PATH в Вашем ~/.bash_profile или /etc/profile для включения /opt/qt/bin.

Как и с большинством библиотек, не нужно делать особой конфигурации. После обновления /etc/ld.so.conf, как объяснено выше, запустите /sbin/ldconfig, и ldd сможет найти разделяемые библиотеки.

Содержание

Библиотека Qt/ X11 содержит API, необходимый для использования программ, основанных на Qt GUI.

Пакет Qt содержит assistant, designer, linguist, lrelease, lupdate, moc, qm2ts, qmake, qtconfig, uic и библиотеки libqt-mt и libqui.

Поиск

 

Найди своих коллег!