Qt-5.5.1

Introduction à Qt5

Qt5 est une boîte à outils multi-plate-forme qui est largement utilisée pour le développement d'application avec une interface graphique (GUI) (dans ce cas Qt5 est classé comme une boite à outils de widgets), 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. Une des utilisations principales de Qt est KDE Frameworks 5 (KF5).

Ce paquet est connu pour se construire correctement sur une plateforme LFS-7.9.

Informations sur le paquet

Dépendances de Qt5

Requises

Python-2.7.11 et Bibliothèques Xorg

Recommandées

Facultatives

GeoClue-0.12.0, GTK+-2.24.29 (Support des thèmes GTK+), Harfbuzz-1.1.3, libinput-1.1.8, MariaDB-10.1.11 ou MySQL, PostgreSQL-9.5.1, PulseAudio-8.0, unixODBC-2.3.4, et ibus

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/qt5

Alternatives d'installation de Qt

L'installation de Qt présente plusieurs défis et choix. La complication de l'installation de Qt est dû à la présence de deux versions, Qt4 et Qt5, qui ont des programmes exécutables avec des noms identiques. Si les deux paquets sont installés sur un système, la seule méthode pour gérer quel ensemble de programmes est utilisé est soit de contrôler le PATH de l'utilisateur ou de renommer les fichiers soit directement soit via des liens symboliques. Les deux paquets ne peuvent pas être installés dans le même répertoire.

Si vous installez seulement une des versions de Qt, le choix de l'installation est facile. Vous pouvez soit installer le composant dans plusieurs répertoires de la hiérarchie /usr soit installer le paquet entièrement dans un répertoire séparé de votre choix.

Si les deux versions de Qt doivent être installée, une ou les deux versions doivent être installées dans un répertoire séparé. Pour la discussion ici nous utiliserons le répertoire /opt. La sélection de quelle version doit être utilisée par des utilisateurs individuels sur un système est contrôlé par la variable PATH. D'autres systèmes peuvent être imaginés, mais les éditeurs de BLFS trouvent la méthode du PATH plus simple.

L'avantage d'installer dans /usr est qu'il n'y à pas de mise à jour des fichiers /etc/ld.so.conf ou /etc/man_db.conf. Les fichiers du paquet sont répartis dans plusieurs sous-répertoire de la hiérarchie /usr. C'est la méthode que le plus de distributions commerciales utilisent. L'inconvénient pour les utilisateurs de BLFS est que la version de Qt ne peut pas être mise à jour quand elle est utilisée. Par exemple, elle ne peut pas être mise à jour dans un environnement KDE. Cela implique également de multiples versions de Qt sur votre système et ne permet pas de retourner à une version existante de Qt connue pour fonctionner.

L'avantage d'installer Qt dans un répertoire personnalisé comme /opt/qt-4.8.7 ou /opt/qt-5.5.1 est que cela laisse tous les fichiers du paquet consolidés dans une hiérarchie de répertoires dédiées. En utilisant cette méthode, une mise à jour peut être faite sans écraser une installation précédente et les utilisateurs peuvent facilement retourner à une version précédente en changeant un lien symbolique ou simplement en changeant la variable PATH. Cela permet également à un développeur de maintenir des versions multiples de Qt4 ou Qt5 pour tester.

Initialisation du préfixe d'installation

Installation dans /opt/qt5

Les éditeurs de BLFS recommandent d'installer Qt5 dans un répertoire autre que /usr, par exemple /opt/qt5. Pour cela initialisez la variable d'environnement suivante :

export QT5PREFIX=/opt/qt5
[Astuce]

Astuce

Parfois, les chemins d'installation sont codés en durs dans les fichiers installés. C'est la raison pour laquelle /opt/qt5 est utilisé comme préfixe d'installation au lieu de /opt/qt-5.5.1. Pour créer un répertoire versionné de Qt5, vous devez renommer le répertoire et créez un lien symbolique :

mkdir /opt/qt-5.5.1
ln -sfnv qt-5.5.1 /opt/qt5

Plus tard, vous pouvez vouloir installer d'autres versions de Qt5. Pour faire cela, supprimez juste le lien symbolique et utilisez /opt/qt5 de nouveau comme préfixe. La version de Qt5 que vous utilisez dépend seulement d'où pointe le lien symbolique.

Installation de Qt5

[Avertissement]

Avertissement

Si Qt5 doit être réinstallé dans le même répertoire qu'une précédente installation, lancez les commandes fait par root, comme make install, 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.

[Attention]

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.

[Note]

Note

Le temps et l'espace de construction requis pour tout Qt5 est considérable. Les instructions ci-dessous ne construisent pas les tutoriels et les exemples. La suppression des lignes -nomake créera une construction complète.

[Note]

Note

Les éditeurs de BLFS ne recommandent pas d'installer Qt5 dans la hiérarchie /usr car il devient difficile de trouver des composants et de mettre à jour vers une nouvelle version. Si vous voulez installer Qt5 dans /usr, les répertoires ont besoin d'être spécifiés explicitement. Dans ce cas, initialisez QT5PREFIX=/usr et ajoutez la suite aux arguments de configuration :

-bindir         /usr/bin/qt5                \
-plugindir      /usr/lib/qt5/plugins        \
-importdir      /usr/lib/qt5/imports        \
-headerdir      /usr/include/qt5            \
-datadir        /usr/share/qt5              \
-docdir         /usr/share/doc/qt5          \
-translationdir /usr/share/qt5/translations \
-examplesdir    /usr/share/doc/qt5/examples \

Installez Qt5 en lançant les commandes suivantes :

./configure -prefix         $QT5PREFIX \
            -sysconfdir     /etc/xdg   \
            -confirm-license           \
            -opensource                \
            -dbus-linked               \
            -openssl-linked            \
            -system-harfbuzz           \
            -system-sqlite             \
            -nomake examples           \
            -no-rpath                  \
            -optimized-qmake           \
            -skip qtwebengine          &&
make

Ce paquet n'est pas fourni avec une suite de tests.

Maintenant, en tant qu'utilisateur root :

make install

Enlevez les références au répertoire de construction des fichiers .pc en lançant la commande suivante en tant qu'utilisateur root :

find $QT5PREFIX/lib/pkgconfig -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;

Effacez les références au répertoire d'installation dans les fichiers de dépendances de bibliothèques installées (prl) et d'inclusion de profile (pri) en lançant les commandes suivantes en tant qu'utilisateur root :

find $QT5PREFIX -name qt_lib_bootstrap_private.pri \
   -exec sed -i -e "s:$PWD/qtbase:/$QT5PREFIX/lib/:g" {} \; &&

find $QT5PREFIX -name \*.prl \
   -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Installez les images et créez les entrées de menu pour les applications installées. La variable QT5BINDIR est utilisée ici pour pointer le répertoire des programmes exécutables. Si vous avez modifié le bindir, QT5BINDIR devra être modifié. Soyez certain que la variable QT5BINDIR est définie dans l'environnement de root et en tant qu'utilisateur root :

QT5BINDIR=$QT5PREFIX/bin

install -v -dm755 /usr/share/pixmaps/                  &&

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 &&

install -dm755 /usr/share/applications &&

cat > /usr/share/applications/assistant-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Assistant
Comment=Shows Qt5 documentation and examples
Exec=$QT5BINDIR/assistant
Icon=assistant-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;
EOF

cat > /usr/share/applications/designer-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt5 applications
Exec=$QT5BINDIR/designer
Icon=designer-qt5.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/linguist-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Linguist
Comment=Add translations to Qt5 applications
Exec=$QT5BINDIR/linguist
Icon=linguist-qt5.png
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/qdbusviewer-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QT5BINDIR/qdbusviewer
Icon=qdbusviewer-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Certains paquets comme VLC-2.2.2 cherchent certains exécutables avec le suffixe -qt4. Lancez la commande suivante en tant qu'utilisateur root pour créer les liens symboliques nécessaires :

for file in moc uic rcc qmake lconvert lrelease lupdate; do
  ln -sfrvn $QT5BINDIR/$file /usr/bin/$file-qt5
done

Explication des commandes

-confirm-license : Accepte 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ébogage.

-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-linked -openssl-linked : Ces paramètres active la liaison explicite des bibliothèques D-Bus et OpenSSL dans les bibliothèques Qt5 au lieu de les dlopen()-er.

-skip qtwebengine : Ce paramètre désactive la construction du moteur Web Qt. Il n'est pas actuellement utilisé par des application. Notez que la construction du moteur web Qt augmente le temps de construction et la taille installée d'environ 50%.

-optimized-qmake: Ce paramètre active la construction de la version optimisée du programme qmake.

-system-harfbuzz : Ce paramètre active l'utilisation de la version du système de Harfbuzz qui corrige quelques problèmes de rendu de police dans les applications Qt5 mais n'a pas toutes les fonctionnalités que la version incluse possède.

Configuration de Qt5

Informations sur la configuration

Si vous avez installé Qt5 dans /usr, créez une variable d'environnement utilisée par certains paquets. En tant qu'utilisateur root :

cat > /etc/profile.d/qt5.sh << EOF
# Begin /etc/profile.d/qt5.sh

QT5DIR=/usr
export QT5DIR

# End /etc/profile.d/qt5.sh
EOF

Si vous avez installé Qt5 dans un emplacement autre que /usr, vous devez mettre à jour les fichiers de configuration suivant pour que Qt5 soit correctement trouvé par les autres paquet et les processus systèmes.

En tant qu'utilisateur root, mettez à jour le fichier /etc/ld.so.conf et le fichier cache de l'éditeur de liens :

cat >> /etc/ld.so.conf << EOF
# Begin Qt addition

/opt/qt5/lib

# End Qt addition
EOF

ldconfig

En tant qu'utilisateur root, créez le fichier/etc/profile.d/qt5.sh :

cat > /etc/profile.d/qt5.sh << "EOF"
# Begin /etc/profile.d/qt5.sh

QT5DIR=/opt/qt5

pathappend $QT5DIR/bin           PATH
pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH

export QT5DIR

# End /etc/profile.d/qt5.sh
EOF

Choisir la version de programme de Qt

Si vous installez Qt4 et Qt5, vous pouvez utiliser des scripts simples pour sélectionner l'ensemble des programmes Qt actuellement actifs. En tant qu'utilisateur root, créez les scripts suivants :

cat > /usr/bin/setqt4 << 'EOF'
if [ "x$QT5DIR" != "x/usr" ] && [ "x$QT5DIR" != "x" ]; then pathremove  $QT5DIR/bin; fi
if [ "x$QT4DIR" != "x/usr" ]; then pathprepend $QT4DIR/bin; fi
echo $PATH
EOF
cat > /usr/bin/setqt5 << 'EOF'
if [ "x$QT4DIR" != "x/usr" ] && [ "x$QT4DIR" != "x" ]; then pathremove  $QT4DIR/bin; fi
if [ "x$QT5DIR" != "x/usr" ]; then pathprepend $QT5DIR/bin; fi
echo $PATH
EOF

Vous pouvez utiliser la version appropriée de Qt en lançant source setqt4 ou source setqt5 comme vous le souhaitez (Initialiser le PATH ne fonctionne pas dans un sous-répertoire). Une autre technique qui peut être utilisée est de créer des alias appropriés dans votre ~/.bashrc comme alias setqt4='source setqt4'.

Contenu

Programmes installés: assistant, designer, lconvert, linguist, lrelease, lupdate, moc, pixeltool, qcollectiongenerator, qdbuscpp2xml, qdbus, qdbusviewer, qdbusxml2cpp, qdoc, qhelpconverter, qhelpgenerator, qlalr, qmake, qml1plugindump, qmlbundle, qmleasing, qmlimportscanner, qmllint, qmlmin, qmlplugindump, qmlprofiler, qml, qmlscene, qmltestrunner, qmlviewer, qtdiag, qtpaths, rcc, syncqt.pl, uic, xmlpatterns et xmlpatternsvalidator
Bibliothèques installées: libEnginio.so, libqgsttools_p.so, libQt5Bluetooth.so, libQt5Bootstrap.a, libQt5CLucene.so, libQt5Concurrent.so, libQt5Core.so, libQt5DBus.so, libQt5Declarative.so, libQt5DesignerComponents.so, libQt5Designer.so, libQt5Gui.so, libQt5Help.so, libQt5Location.so, libQt5MultimediaQuick_p.so, libQt5Multimedia.so, libQt5MultimediaWidgets.so, libQt5Network.so, libQt5Nfc.so, libQt5OpenGLExtensions.a, libQt5OpenGL.so, libQt5PlatformSupport.a, libQt5Positioning.so, libQt5PrintSupport.so, libQt5QmlDevTools.a, libQt5Qml.so, libQt5QuickParticles.so, libQt5Quick.so, libQt5QuickTest.so, libQt5QuickWidgets.so, libQt5Script.so, libQt5ScriptTools.so, libQt5Sensors.so, libQt5SerialPort.so, libQt5Sql.so, libQt5Svg.so, libQt5Test.so, libQt5UiTools.a, libQt5WebChannel.so, libQt5WebEngineCore.so, libQt5WebEngine.so, libQt5WebEngineWidgets.so, libQt5WebKit.so, libQt5WebKitWidgets.so, libQt5WebSockets.so, libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so, libQt5Xml.so, et plusieurs greffons dans /opt/qt5/{imports,plugins,qml}
Répertoires installés: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5, et /usr/share/qt5 OU /opt/qt5 et /opt/qt-5.5.1

Descriptions courtes

assistant

est un outil pour présenter la documentation en ligne.

designer

est un constructeur complet de GUI. Il inclut des possibilités puissantes comme le mode de prévisualisation, la couche de boutons automatiques, le support des boutons personnalisés et un éditeur de propriétés avancées.

lconvert

is part of Qt5's Linguist tool chain. It can be used as a standalone tool to convert and filter translation data files.

linguist

fournit un support de traduction d'applications en langues locales.

lrelease

est un outil simple en ligne de commande. Il lit un fichier de projet Qt et produit des fichiers de message utilisés par l'application.

lupdate

lit un fichier de projet Qt, cherche les chaînes traduisibles dans les sources spécifiées, l'en-tête et les fichiers du designer Qt, et produit ou met à jour les fichiers de traduction listés dans le fichier du projet.

moc

génère le support du code des méta-objets Qt.

pixeltool

est une loupe de bureau et, quand vous déplacez votre souris sur l'écran, elle vous montrera le contenu agrandi dans sa fenêtre.

qcollectiongenerator

est un outil utilisé pour créer une "Qt Help Collection".

qdbuscpp2xml

prend un fichier source C++ et génère une définition D-Bus XML de cette interface.

qdbus

liste les services disponibles, les chemins des objets, les méthodes, les signaux, et les propriétés des objets sur un bus.

qdbusviewer

est un navigateur graphique D-Bus.

qdbusxml2cpp

est un outil qui peut être utilisé pour analyser les descriptions de l'interface et produire du code statique représentant ces interfaces.

qdoc

est un outil utilisé par les développeurs de Qt pour générer de la documentation pour les projets logiciels.

qhelpconverter

est un outil utilisé pour convertir des fichiers au format d'aide de Qt.

qhelpgenerator

est un outil utilisé pour générer un fichier d'aide compressé de Qt.

qlalr

est un outil utilisé pour générer du code depuis des spécifications grammaticales.

qmake

utilise des informations stockées dans des fichiers de projet pour déterminer ce qui devrait aller dans les makefiles qu'il génère.

qml1plugindump

est un lien symbolique vers qtchooser.

qmlbundle

est un outil utilisé pour gérer les paquets QML.

qmleasing

est un outil utilisé pour définir facilement une courbes en utilisant un éditeur de courbe interactif.

qmlimportscanner

est un outil utilisé pour importer des fichiers QML depuis un répertoire.

qmllint

est un vérificateur de syntaxe pour les fichiers QML.

qmlmin

supprime les commentaires et les mises en forme de caractères d'un fichier QML.

qmlplugindump

est un outil pour créer un fichier qmltypes.

qmlprofiler

est un outil utilisé pour analyser les applications QML.

qmlscene

est un utilitaire qui charge et affiche les documents QML avant que l'application ne soit terminée.

qmltestrunner

est un outil utilisé pour faire des tests.

qmlviewer

est un outil pour charger des documents QML qui font qu'il est facile de rapidement développer et déboguer des applications QML.

qtdiag

est un outil pour afficher des informations de diagnostiques à propos de Qt et son environnement.

qtpaths

est un outil pour obtenir des informations sur le chemin de Qt.

rcc

est un compilateur de ressources utilisé avec le designer.

syncqt.pl

est un script pour créer les entêtes des répertoires include. C'est un outil de développement interne.

uic

est un compilateur d'interface utilisateur Qt.

xmlpatterns

fournit le support pour XPath, XQuery, XSLT, et les schémas de validation XML.

xmlpatternsvalidator

est un outil utilisé pour valider des documents XML.

Last updated on 2016-03-07 10:31:17 +0100