Библиотека сайта rus-linux.net
Beyond Linux From Scratch. Version 2011-12-30 | ||
Назад | 24. Библиотеки системы X | Вперед |
Пакет Qt-3.3.8d
Знакомимся с пакетом Qt
В пакет Qt находится библиотека C++ GUI. Она используется для создания графических приложений или выполнения графических приложений, которые динамически скомпонованы с библиотекой Qt. Одним из основных приложений, использующим Qt, является KDE.
Информация о пакете
- Загрузка (HTTP): http://get.qt.nokia.com/qt/source/qt-x11-free-3.3.8b.tar.gz
- Загрузка (FTP): ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.8b.tar.gz
- Контрольная сумма MD5: 9f05b4125cfe477cc52c9742c3c09009
- Размер загружаемого пакета: 16,5 MB
- Оценочный размер требуемого дискового пространства: 261 MB
- Оценочное время сборки: 11 SBU (полный пакет), 7.5 SBU (без руководств и примеров)
Зависимости пакета Qt
Обязательные
Рекомендуемые
Примечание: если по каким-либо причинам в вашей системе не установлены рекомендуемые библиотеки, то вы должны удалить соответствующие параметры -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 |