Библиотеки X

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

Qt-3.3.3

Введение в Qt

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

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

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

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

libjpeg-6b и libmng-1.0.8

Установка 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 (or /opt/qt/doc): Эта команда устанавливает страницы man, которые пропущены в команде make install.

cp -r examples /usr/share/doc/qt (or /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 содержит APIs necessary to use programs based on the Qt GUI toolkit.

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