Qt-5.4.0

Introduction Qt5

Qt5 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 Qt5 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.

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

Information sur le paquet

Dépendances de Qt5

Requises

Xorg Libraries

Recommandées

Facultative

GeoClue-0.12.0, gst-plugins-base-1.4.5 (Support de QtWebKit HTML5 Video), gtk+-2.24.26 (Support de GTK+ Theme), Harfbuzz-0.9.38, IBus, libxkbcommon, MariaDB-10.0.16 ou MySQL, PostgreSQL-9.4.1, PulseAudio-5.0 et unixODBC-2.3.2

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

Alternatives d'installation de Qt

L'installation de Qt présente plusieurs challenges et choix. La complication de l'installation de Qt est le fait qu'il y a 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 ou 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 ou installer le paquet entièrement dans un répertoire séparé de votre choix. Nous nous référons à ces options comme "Méthode 1: Installation dans /usr" et "Méthode 2: Installation dans /opt".

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. Le désavantage 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.6 ou /opt/qt-5.4.0 ou 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 dans 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 multiplus de Qt4 ou Qt5 pour tester.

Installation de Qt5

[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.

[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.

Méthode 1: Installation dans /usr

Installez Qt5 en lançant les commandes suivantes

export QT5LINK=/usr
./configure -prefix         /usr               \
            -sysconfdir     /etc/xdg           \
            -bindir         /usr/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            \
            -skip qtwebengine  \
            -nomake examples   \
            -optimized-qmake   &&
make

Ce paquet n'a pas de suite de tests.

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

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

Maintenant, en tant qu'utilisateur root :

make install

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 -e "s:$PWD/qtbase:/usr/lib/qt5:g" \
    -i /usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri &&
find /usr/lib/lib{qgsttools_p,Qt5*}.prl -exec sed -i -r \
     '/^QMAKE_PRL_BUILD_DIR/d;s/(QMAKE_PRL_LIBS =).*/\1/' {} \;

Methode 2: Installation dans /opt/qt-5.4.0

Cette partie fournit les instructions d'installation de Qt5 dans le répertoire /opt.

export QT5DIR=/opt/qt-5.4.0 &&
export QT5LINK=/opt/qt5 &&
./configure -prefix     $QT5DIR  \
            -sysconfdir /etc/xdg \
            -confirm-license     \
            -opensource          \
            -dbus-linked         \
            -openssl-linked      \
            -system-sqlite       \
            -no-nis              \
            -nomake examples     \
            -skip qtwebengine    \
            -optimized-qmake     &&
make

Maintenant, en tant qu'utilisateur root :

make install &&
ln -svfn $QT5DIR /opt/qt5

Enlevez les références au répertoire de construction dans les fichiers installés en lançant les commandes suivantes en tant qu'utilisateur root:

find $QT5DIR -name qt_lib_bootstrap_private.pri \
   -exec sed -i -e "s:$PWD/qtbase:/$QT5DIR/lib/:g" {} \; &&
find $QT5DIR -name \*.prl \
   -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Suite pour les deux méthodes

Pour toutes les méthodes, installez les images et créez les entrées de menu pour les applications installées. Soyez certain que la variable QT5LINK est définie dans l'environnement root et en tant qu'utilisateur root :

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=$QT5LINK/bin/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=$QT5LINK/bin/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=$QT5LINK/bin/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=$QT5LINK/bin/qdbusviewer
Icon=qdbusviewer-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Explications des commandes

-confirm-license : Acceptez la licence sans poser la question à l'utilisateur pendant la configuration.

-opensource : Installez la version opensource de Qt5.

-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-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()-itiser.

-skip qtwebengine: ce paramètre désactive la construction du moteur Web Qt. Il n'est pas présentement utilisé par des application. Si c'est option est enlevée, corrigez un problème de construction avec :

sed -i '$ a !contains(QT_CONFIG, pulseaudio): GYP_CONFIG += use_pulseaudio=0' \
       qtwebengine/src/core/config/desktop_linux.pri

-optimized-qmake: Ce paramètre active la construction du programme optimisé 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 a.

Configuration de Qt5

Information de Configuration

Créez les entrées du menu pour les applications installées en lançant les commandes suivantes en tant qu'utilisateur root:

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 /opt/qt5/bin           PATH
pathappend /opt/qt5/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 selectionner l'ensemble des programmes Qt actuellement actifs. En tant qu'utilisateur root, creez les scripts suivants:

cat > /usr/bin/setqt4 << 'EOF'
if [ "x$QT5DIR" != "x/usr" ]; 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" ]; then pathremove  $QT4DIR/bin; fi
if [ "x$QT5DIR" != "x/usr" ]; then pathprepend $QT5DIR/bin; fi
echo $PATH
EOF

Vous pouvez utiliser la version approprie de Qt en lancant source setqt4 ou source setqt5 comme vous le souhaitez. (Initialisez le PATH ne fonctionne pas dans un sous-repertoire.) Une autre technique qui peut etre utilisee est de creer des alias appropries 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, qmlimportscanner, qmlmin, qmlplugindump, qmlprofiler, qml, qmlscene, qmltestrunner, qmlviewer,qtdiag, qtpaths, rcc, syncqt.pl, uic, xmlpatterns, and 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, 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, libQt5QuickWidgets.so, libQt5Quick.so, libQt5QuickTest.so, libQt5Script.so, libQt5ScriptTools.so, libQt5Sensors.so, libQt5SerialPort.so, libQt5Sql.so, libQt5Svg.so, libQt5Test.so, libQt5UiTools.a, libQt5WebKit.so, libQt5WebKitWidgets.so, libQt5WebSockets.so, libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so, libQt5Xml.so, et plusieurs sous /opt/qt5/{imports,plugins,qml}
Répertoires installés: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5 et /usr/share/qt5 OU /opy/qt5 et /opt/qt-5.4.0

Description courte

assistant

est un outil pour la présentation de 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.

linguist

fournit un support pour la traduction d'applications dans les langues locales.

lrelease

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

lupdate

lit les fichiers de projet Qt, trouve les chaînes traduisibles dans le source spécifié, les fichiers d'entête et d'interface Qt et produit ou met à jour les fichiers de traduction dans le fichier projet.

moc

génère un code de support des meta-objets Qt.

pixeltool

est une loupe de bureau et tant que vous bougez votre souris dans l'écran il affichera le contenu agrandi dans sa fenêtre.

qmake

utilise les informations enregistrées dans les fichiers projet pour déterminer ceux qui doivent aller dans les makefiles qu'il génère.

rcc

est un compilateur de ressources utilisé en conjonction avec le dessinateur.

uic

est le compilateur d'interfaces utilisateur Qt.

Last updated on 2013-08-11 04:12:50 +0200