Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 24. Библиотеки системы X Вперед

Пакет Qt-3.3.8d

Знакомимся с пакетом Qt

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

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

Зависимости пакета Qt

Обязательные

Система X Window

Рекомендуемые

libjpeg-8c и libmng-1.0.10

Примечание: если по каким-либо причинам в вашей системе не установлены рекомендуемые библиотеки, то вы должны удалить соответствующие параметры -system-<библиотека> и -plugin-imgfmt-<библиотека> из команды configure, которая есть в инструкциях, приведенных ниже.

Необязательные

CUPS-1.5.0, MySQL-5.5.17, PostgreSQL-9.0.6, unixODBC-2.3.0, SQLite-3.7.8 и Firebird

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/qt

Установка пакета Qt

В этом пакете (к сожалению) предполагается, что система X Window установлена в директории /usr/X11R6. Если вы используете последнюю версию Xorg и она установлена в любом другом месте, убедитесь, что вы следовали инструкциям раздела Создание символической ссылки для совместимости с X11R6.

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

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

В этом разделе будет продемонстрировано два различных способа.

Предупреждение

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

Замечание

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

make sub-tools

Способ 1 — Установка в иерархию директориев '/usr'

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

Замечание

Если пакет Qt переустанавливается, выполните следующие команды из консоли или из окна, которое не является окном, открытым менеджером пакета Qt. Команда перезапишет библиотеки Qt, которые не должны использоваться в процессе установки.

sed -i '/QMAKE_RPATH/d' mkspecs/linux*/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-libpng \
            -system-libjpeg \
            -system-libmng \
            -plugin-imgfmt-png \
            -plugin-imgfmt-jpeg \
            -plugin-imgfmt-mng \
            -no-exceptions \
            -thread \
            -tablet &&

make &&
exit

В этом пакете набор тестов отсутствует.

Теперь в роли пользователя root выполните:

make install &&
ln -v -sf libqt-mt.so /usr/lib/libqt.so &&
ln -v -snf ../../bin /usr/share/qt/bin &&
ln -v -snf ../../include/qt /usr/share/qt/include &&
ln -v -snf ../../lib /usr/share/qt/lib &&
cp -v -r doc/man /usr/share &&
cp -v -r examples /usr/share/doc/qt

Способ 2 — Установка в директорий '/opt'

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

Разработчики Qt используют по умолчанию директорий /usr/local/qt/, но данная процедура помещает файлы в директорий /opt/qt-3.3.8b, а затем создает символическую ссылку в /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.8b \
            -sysconfdir /etc/qt \
            -qt-gif \
            -system-zlib \
            -system-libpng \
            -system-libjpeg \
            -system-libmng \
            -plugin-imgfmt-png \
            -plugin-imgfmt-jpeg \
            -plugin-imgfmt-mng \
            -no-exceptions \
            -thread \
            -tablet &&

make &&
exit

В этом пакете набор тестов отсутствует.

Теперь в роли пользователя root выполните:

make install &&
ln -v -sfn qt-3.3.8b /opt/qt &&
ln -v -s libqt-mt.so /opt/qt/lib/libqt.so &&
cp -v -r doc/man examples /opt/qt/doc

Пояснение команд

sed -i '/QMAKE_RPATH/d' mkspecs/linux*/qmake.conf: При использовании способа 1 пакет Qt будет установлен в стандартных директориях системы. В этом случае не требуется устанавливать путь поиска для библиотеки времени исполнения.

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 -system-libjpeg -system-mng: Эти переключатели заставляют в инструкциях сборки использовать общедоступные библиотеки, которые есть в вашей системе, а не создавать специальный набор библиотек, необходимый для поддержки этих функций.

-plugin-imgfmt-png -plugin-imgfmt-jpeg -plugin-imgfmt-mng: Эти переключатели позволяют осуществлять компоновку с библиотеками времени выполнения программ.

Если вы передаете в команду configure параметры переключателя -plugin-sql-<драйвер> или -qt-sql-<драйвер>, вы также должны передать параметр -I</путь/к/заголовочным/файлам/sql> с тем, чтобы команда make могла найти соответствующие заголовочные файлы. Например, сборка с поддержкой MySQL (в отличие от сборки плагина) потребуется использование -I/usr/include/mysql -qt-sql-mysql.

Замечание

Чтобы узнать, был ли mysql автоматически проверен должным образом, посмотрите результат работы команды ./configure -I/usr/include/mysql -help. В случае, когда для поддержки используются другие базы данных, для команды configure потребуются аналогичные параметры.

-no-exceptions: Этот параметр отключает обработку исключений, генерируемых компилятором С++.

-thread: Этот параметр включает поддержку многопоточности.

ln -v -sf libqt-mt.so /usr/lib/libqt.so: Эта команда позволяет скриптам configure находить рабочие варианты Qt.

ln -v -snf ../../bin /usr/share/qt/bin: Эта команда, и следующие две команды позволяет при установке с использованием директория /usr имитировать установку в директорий /opt, что осуществляется установкой таким образом, что все двоичные файлы, файлы заголовков и библиотеки будут доступны из одного директория /usr/share/qt.

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

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

Конфигурирование пакета Qt

Подробнее о конфигурировании

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

Для способа 1 (эта команда необязательна; используйте ее только в случае, если приложение не может найти установленные библиотеки или файлы с заголовками):

export QTDIR=/usr/share/qt

или для способа 2:

export QTDIR=/opt/qt

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

Обновите конфигурационные файлы /etc/ld.so.conf и /etc/man_db.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_db.conf < "EOF"
# Begin qt addition to man_db.conf

MANDATORY_MANPATH /opt/qt/doc/man
MANPATH_MAP       /opt/qt/bin         /opt/qt/doc/man
MANDB_MAP         /opt/qt/doc/man     /var/cache/man/qt

# End qt addition to man_db.conf
EOF

Обновите переменную среды окружения PKG_CONFIG_PATH, которая находится в вашем файле ~/.bash_profile или в файле /etc/profile, следующим образом:

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

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

 

Совет

Переменные PATH, MANPATH и PKG_CONFIG_PATH можно обновить в скрипте extrapaths.sh (или в другом скрипте) в директории /etc/profile.d в случае, если вы настроите загрузочные файлы так, как это рекомендовано в разделе Файлы запуска командной оболочки Bash.

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

Описание пакета

Установленные программы: assistant, designer, linguist, lrelease, lupdate, moc, qm2ts, qmake, qtconfig и uic

Установленные библиотеки: libqt-mt.so, libqt.so libqui.so, libdesignercore.a, libeditor.a и libqassistantclient.a

Установленные директории: /opt/qt-3.3.8b or /usr/lib/qt, /usr/share/qt, /usr/share/doc/qt, /usr/include/qt и /etc/qt

Краткое описание

assistant

является инструментом для онлайнового доступа к документации

designer

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

linguist

предоставляет поддержку для перевода приложений на локальные языки

lrelease

это простой инструмент командной строки. Он считывает файл проекта Qt и создает файлы сообщений, используемые приложением

lupdate

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

moc

создает код поддержки метаобъектов Qt

qm2ts

это инструмент для преобразования форматов файлов сообщений Qt

qmake

qmake использует информацию, хранящуюся в файлах проекта, для того, чтобы определить, куда следует двигаться при генерации файлов makefile

qtconfig

используется для настройки внешнего вида приложений Qt

uic

компилятор пользовательского интерфейса Qt

Перевод сделан с варианта оригинала, датированного 2011-12-21 09:58:00 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Содержание главы 24   Пакет Qt-4.7.1