Библиотека сайта 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 |


