Introduction à Qt
Qt est une boite à outils
multi-plate-forme qui est largement utilisée pour le
développement d'application avec une interface graphique (GUI)
(dans ce cas Qt est classée comme une boite à outils de
boutons), et est également utilisée pour le développement de
programmes sans GUI comme est outils en ligne de commande et les
consoles pour serveurs. Un des principaux utilisateurs de
Qt est KDE.
Ce paquet est connu pour se construire correctement sur une
plateforme LFS-7.4.
Information sur le paquet
Dépendances de Qt
Requises
ALSA-Library-1.0.27.2, MesaLib-9.2.0,
xcb-util-image-0.3.9, xcb-util-keysyms-0.3.9, xcb-util-renderutil-0.3.8 et
xcb-util-wm-0.3.9
Recommandées
Certificate Authority
Certificates, Cups-1.6.3, D-BUS-1.6.14,
GLib-2.36.4, GStreamer Base
Plug-ins-0.10.36, ICU-51.2, libjpeg-turbo-1.3.0, libmng-2.0.2, libpng-1.6.4,
LibTIFF-4.0.3, OpenSSL-1.0.1e, PCRE-8.33 et SQLite-3.8.0.2
Facultative
gst-plugins-base-1.0.10 (Support de
QtWebKit HTML5 Video), gtk+-2.24.20 (Support de GTK+ Theme), libxkbcommon, MySQL-5.6.13, PostgreSQL-9.3.0, PulseAudio-4.0, unixODBC-2.3.1, et qtchooser-31
(exécution, si Qt4 est aussi installé et dans /usr)
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/qt5
Installation de Qt
Il y a plusieurs façons d'installer un paquet compliqué comme
Qt. Les fichiers ne sont pas
entièrement indépendant de la position. Les procédures
d'installation exécute le programme pkg-config pour déterminer
l'emplacement des paquets, des exécutables, des bibliothèques,
des entêtes et des autres fichiers. Pour Qt, pkg-config regardera les fichiers
lib/pkgconfig/Qt*.pc
appropriés qui
doivent être modifiés si les paquets sont déplacés. Ces
fichiers sont initialisés correctement par le processus de
construction.
L'emplacement des fichiers de l'installation par défaut est
/usr/local/qt/
. Beaucoup de
distributions commerciales placent les fichier dans la hiérarchie
du système /usr
. Le paquet peut
aussi être installé dans un répertoire quelconque.
Le désavantage d'installer dans /usr
est que les noms de fichiers pour les exécutables Qt4 et Qt5
sont en conflit avec d'autres paquets installés dans le même
répertoire. Les instructions dessous donne un contournement pour
ce problème en utilisant un programme d'aide qtchooser-31.
Cela demande de renommer les exécutables Qt avec un suffixe de
version.
L'avantage d'une installation dans /usr
est qu'il n'est pas requis de mettre Ã
jour les fichiers /etc/ld.so.conf
ou
/etc/man_db.conf
. Les fichiers du
paquet sont répartis dans plusieurs sous-répertoires de la
hiérarchie /usr
. C'est la méthode
qu'utilise la plupart des distributions commerciales. C'est
également supporté par l'application facultative qtchooser.
L'avantage d'installer Qt4 dans un
répertoire personnalisé tel que /opt/qt-4.8.5
est que cela laisse tous les
fichiers du paquet rassemblé dans une hiérarchie de répertoires
dédié. En utilisant cette méthode, une mise à jour peut
être faite sans écraser une ancienne installation et les
utilisateurs peuvent facilement retourner vers une ancienne version
en changeant un lien symbolique ou simplement en changeant la
variable PATH. Cela permet également à un développeur de
maintenir plusieurs versions de Qt4 ou Qt5
pour tester.
Attention
Si vous n'installez pas certaine des dépendances recommandées,
examinez la sortie de ./configure
--help pour vérifier comment les désactiver ou
utiliser les versions internes livrées avec le paquet des
sources.
Avertissement
Si Qt5 doit être réinstallé
dans le même répertoire qu'une précédente installation,
lancez les commandes suivantes depuis une console ou un
gestionnaire de fenêtres non Qt5. Elle écrase les
bibliothèques Qt5 qui ne
devraient pas être utilisées pendant le processus
d'installation.
Méthode 1: Installation dans /usr
Installez Qt5 en lançant les
commandes suivantes
Note
Si Qt5 n'est pas aussi installé dans le
répertoire /usr, modifiez l'entrée pour -bindir dessous en
/usr/bin.
sed -i "s:Context\* context}:&\n%lex-param {YYLEX_PARAM}:" \
qtwebkit/Source/ThirdParty/ANGLE/src/compiler/glslang.y &&
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
qtimageformats/config.tests/libmng/libmng.cpp &&
./configure -prefix /usr \
-sysconfdir /etc/xdg \
-bindir /usr/lib/qt5/bin \
-headerdir /usr/include/qt5 \
-archdatadir /usr/lib/qt5 \
-datadir /usr/share/qt5 \
-docdir /usr/share/doc/qt5 \
-translationdir /usr/share/qt5/translations \
-examplesdir /usr/share/doc/qt5/examples \
-confirm-license \
-opensource \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-no-nis \
-nomake examples \
-opengl es2 \
-optimized-qmake &&
make
Enlevez les références au répertoire de construction des
fichiers pkg-config en lançant la commande suivante:
find . -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;
Ce paquet n'a pas de suite de tests.
Maintenant, en tant qu'utilisateur root
:
make install &&
install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt5.png &&
install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt5.png &&
install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt5.png &&
install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt5.png
Enlevez les références au répertoire de construction des
fichiers installés en lançant la commande suivante en tant
qu'utilisateur root
:
sed -i -e "s:$PWD/qtbase:/usr/lib/qt5:g" \
/usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap.pri &&
find /usr/lib/*.prl -exec sed -i -e \
'/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
Si vous installez aussi Qt4 dans /usr, liez symboliquement les
exécutables Qt dans /usr/bin
en lançant les commandes suivantes en
tant qu'utilisateur root
:
for file in /usr/lib/qt5/bin/*
do
ln -sfv ../lib/qt5/bin/$(basename $file) /usr/bin/$(basename $file)-qt5
done
Methode 2: Installation dans /opt/qt-5.1.1
Cette partie fournit une façon alternative d'installer Qt4 en
installant la plupart des fichiers dans le répertoire /opt
. Cela permet la gestion de tous les fichiers
relatifs à Qt dans une unité. Par exemple, une nouvelle
version de Qt5 peut être installée sans ré-écrire une
installation existante et l'ensemble des instances de Qt5 peut
être facilement effacé. Cependant, il y a le désavantage d'avoir
besoin de quelques configurations supplémentaires.
sed -i "s:Context\* context}:&\n%lex-param {YYLEX_PARAM}:" \
qtwebkit/Source/ThirdParty/ANGLE/src/compiler/glslang.y &&
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
qtimageformats/config.tests/libmng/libmng.cpp &&
QT5DIR=/opt/qt-5.1.1
./configure -prefix $QT5DIR \
-sysconfdir /etc/xdg \
-confirm-license \
-opensource \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-plugin-sql-sqlite \
-no-nis \
-nomake examples \
-opengl es2 \
-optimized-qmake &&
make
Maintenant, en tant qu'utilisateur root
:
make install &&
install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt5.png &&
install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt5.png &&
install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt5.png &&
install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt5.png
Enlevez les références au répertoire de construction dans les
fichiers .pc
installés en lançant
les commandes suivantes en tant qu'utilisateur root
:
find $QT5DIR -name qt_lib_bootstrap.pri \
-exec sed -i -e "s:$PWD/qtbase:/$QT5DIR/lib/:g" {} \; &&
find $QT5DIR -name \*.prl \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
Maintenant, il est utile d'ajouter quelques items de configuration
en tant qu'utilisateur root
:
echo /opt/qt5 >> /etc/ld.so.conf &&
ldconfig &&
cat >> /etc/profile.d/qt5.sh << "EOF"
pathappend /opt/qt5/lib/pkgconfig PKG_CONFIG_PATH
EOF
Explications des commandes
sed -i "..." ...: La
première commande corrige la construction avec Bison 3.0 et la seconde commande corrige la
détection de libmng 2.0.
-confirm-license
: Acceptez
la licence sans poser la question à l'utilisateur pendant la
configuration.
-opensource
: Installez la
version opensource de Qt.
-release
: Ce paramètre
désactive la construction avec les symboles de déboguage.
-nomake examples
: Ce
paramètre désactive la construction des programmes d'exemple
inclus dans les sources. Enlevez le si vous voulez les construire.
-system-sqlite
: Ce
paramètre active l'utilisation de la version du système de
SQLite.
-no-nis
: Ce paramètre
désactive le support pour Network Information Service (NIS) qui
est enlevé dans les dernières versions de Glibc.
-dbus-linkend
-openssl-linkend
: Ces paramètres active la liaison
explicite des bibliothèques D-Bus
et OpenSSL dans les bibliothèques
Qt au lieu de les dlopen()-itiser.
-opengl es2
: Ce paramètre
active le support de OpenGL ES2 dans Qt.
-optimized-qmake
: Ce
paramètre active la construction du programme optimisé
qmake.