Qt-5.1.1

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

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]

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

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.

Configuration de Qt

Information de Configuration

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

cat > /etc/profile.d/qt.sh << EOF
# Begin /etc/profile.d/qt.sh
QTDIR=/usr
export QT5DIR
# End /etc/profile.d/qt.sh
EOF

Si vous avez installé Qt dans un endroit autre que /usr, vous devez mettre à jour les fichiers de configuration suivant pour que Qt soit correctement trouvé par les autres paquets et les processus du système.

[Note]

Note

Si vous avez aussi installé Qt4 et avez besoin d'utiliser la version de Qt5 pour un exécutable comme qmake pour construire un programme, soyez certaine que le répertoire bin de Qt5 est avant le répertoire bin de Qt4 dans la variable PATH.

En tant qu'utilisateur root, mettez à jour le fichier /etc/ld.so.conf et le fichier de cache du lieur dynamique d'exécution:

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/qt.sh :

cat > /etc/profile.d/qt.sh << EOF
# Begin /etc/profile.d/qt.sh
QT5DIR=/opt/qt5
pathappend /opt/qt5/bin           PATH
pathappend /opt/qt5/lib/pkgconfig PKG_CONFIG_PATH
export QT5DIR
# End /etc/profile.d/qt.sh
EOF

Pour toutes les méthodes, créez des entrées de menu pour les applications installées. En tant qu'utilisateur root:

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=assistant-qt5
Icon=assistant-qt5
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=designer-qt5
Icon=designer-qt5
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=linguist-qt5
Icon=linguist-qt5
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=qdbusviewer-qt5
Icon=qdbusviewer-qt5
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Contenu

Programmes installés: assistant-qt5, designer-qt5, lconvert-qt5, linguist-qt5, lrelease-qt5, lupdate-qt5, moc-qt5, pixeltool-qt5, qcollectiongenerator-qt5, qdbuscpp2xml-qt5, qdbus-qt5, qdbusviewer-qt5, qdbusxml2cpp-qt5, qdoc-qt5, qhelpconverter-qt5, qhelpgenerator-qt5, qmake-qt5, qml1plugindump-qt5, qmlbundle-qt5, qmlmin-qt5, qmlplugindump-qt5, qmlprofiler-qt5, qmlscene-qt5, qmltestrunner-qt5, qmlviewer-qt5, rcc-qt5, syncqt.pl-qt5, uic-qt5, xmlpatterns-qt5 et xmlpatternsvalidator-qt5
Bibliothèques installées: libqgsttools_p.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, libQt5OpenGLExtensions.a, libQt5OpenGL.so, libQt5PlatformSupport.a, libQt5PrintSupport.so, libQt5QmlDevTools.a, libQt5Qml.so, libQt5QuickParticles.so, libQt5Quick.so, libQt5QuickTest.so, libQt5Script.so, libQt5ScriptTools.so, libQt5Sensors.so, libQt5SerialPort.so, libQt5Sql.so, libQt5Svg.so, libQt5Test.so, libQt5UiTools.a, libQt5V8.so, libQt5WebKit.so, libQt5WebKitWidgets.so, libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so et libQt5Xml.so
Répertoires installés: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5 et /usr/share/qt5

Description courte

assistant-qt5

est un outil pour la présentation de documentation en ligne.

designer-qt5

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

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

lrelease-qt5

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

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

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

pixeltool-qt5

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

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

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

uic-qt5

est le compilateur d'interfaces utilisateur Qt.

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