Qt-4.8.7

Introduction à Qt4

Qt4 est un environnement de travail d'applications multi-plateforme qui est largement utilisé pour développer des applications avec une interface utilisateur graphique (GUI) (dans quelques cas Qt4 est classé comme une trousse de widgets), et aussi utilisé pour développer des programmes non-GUI comme les outils en ligne de commande et les consoles pour les serveurs. Un des utilisateurs majeurs de Qt est KDE4.

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

Informations sur le paquet

Téléchargements supplémentaires

Dépendances de Qt

Requises

Bibliothèques Xorg

Recommandées

Facultatives

Cups-2.1.3, GTK+-2.24.29 (support des thèmes GTK+ 2), MariaDB-10.1.11 ou MySQL, PostgreSQL-9.5.1, PulseAudio-8.0 et unixODBC-2.3.4

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

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/qt4

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

export QT4PREFIX=/opt/qt4
[Astuce]

Astuce

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

mkdir -pv /opt/qt-4.8.7
ln -sfnv qt-4.8.7 /opt/qt4

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

Installation de Qt4

[Avertissement]

Avertissement

Si Qt4 doit être réinstallé dans le même répertoire qu'une précédente installation, lancez les commandes lancées par root, comme make install, depuis une console ou un gestionnaire de fenêtres non Qt4. Elle écrase les bibliothèques Qt4 qui ne devraient pas être utilisées pendant le processus d'installation.

[Attention]

Attention

Si vous n'installez pas quelques unes 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 l'archive des sources.

[Note]

Note

Le temps et l'espace de construction requis pour tout Qt4 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 Qt4 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 Qt4 dans /usr, les répertoires ont besoin d'être spécifiés explicitement. Dans ce cas, initialisez QT4PREFIX=/usr et ajoutez la suite aux arguments de configuration :

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

Installez Qt4 en lançant les commandes suivantes :

./configure -prefix           $QT4PREFIX \
            -sysconfdir       /etc/xdg   \
            -confirm-license             \
            -opensource                  \
            -release                     \
            -dbus-linked                 \
            -openssl-linked              \
            -system-sqlite               \
            -no-phonon                   \
            -no-phonon-backend           \
            -no-webkit                   \
            -no-openvg                   \
            -nomake demos                \
            -nomake examples             \
            -optimized-qmake             &&
make

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

Maintenant en tant qu'utilisateur root :

make install &&
rm -rf $QT4PREFIX/tests

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

find $QT4PREFIX/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) en lançant les commandes suivantes en tant qu'utilisateur root :

for file in $QT4PREFIX/lib/libQt*.prl; do
     sed -r -e '/^QMAKE_PRL_BUILD_DIR/d'    \
            -e 's/(QMAKE_PRL_LIBS =).*/\1/' \
            -i $file
done

Construction de Qtwebkit

La version embarquée de qtwebkit dans le paquet principal requiert une version obsolète du paquet gstreamer. Pour contrer cela, nous utilisons une version plus récente disponible séparément.

Pour commencer, le paquet des développeurs est inhabituel car il n'est pas dans un répertoire, donc nous en créons un avant de déballer l'archive. Après cela, nous devons rendre le paquet compatible avec la dernière version de gcc et utiliser un script inclus pour pouvoir terminer la construction. Pour faire cela, lancez les instructions suivantes :

mkdir qtwebkit-2.3.4 &&
pushd qtwebkit-2.3.4 &&

tar -xf ../../qtwebkit-2.3.4.tar.gz             &&
patch -Np1 -i ../../qtwebkit-2.3.4-gcc5-1.patch &&

QTDIR=$QT4PREFIX PATH=$PATH:$QT4PREFIX/bin \
Tools/Scripts/build-webkit --qt            \
                           --no-webkit2    \
                           --prefix=$QT4PREFIX

Si vous le souhaitez, le processus de construction utilise les processeurs en parallèle en ajoutant l'option --makeargs=-j<number> à l'instruction build-webkit précédente.

Pour installer le paquet, en tant qu'utilisateur root :

make -C WebKitBuild/Release install

Installation de fichiers auxiliaires

Les instructions suivantes considèrent que votre répertoire de travail est le sommet de l'arborescence des sources de Qt4 :

popd

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

QT4BINDIR=$QT4PREFIX/bin

install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \
                  /usr/share/pixmaps/qt4logo.png       &&

install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \
                  /usr/share/pixmaps/assistant-qt4.png &&

install -v -Dm644 tools/designer/src/designer/images/designer.png \
                  /usr/share/pixmaps/designer-qt4.png  &&

install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \
                  /usr/share/pixmaps/linguist-qt4.png  &&

install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
                  /usr/share/pixmaps/qdbusviewer-qt4.png &&

install -dm755 /usr/share/applications &&

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

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

cat > /usr/share/applications/linguist-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 Linguist
Comment=Add translations to Qt4 applications
Exec=$QT4BINDIR/linguist
Icon=linguist-qt4.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-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QT4BINDIR/qdbusviewer
Icon=qdbusviewer-qt4.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

cat > /usr/share/applications/qtconfig-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 Config
Comment=Configure Qt4 behavior, styles, fonts
Exec=$QT4BINDIR/qtconfig
Icon=qt4logo.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Settings;
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 $QT4BINDIR/$file /usr/bin/$file-qt4
done

Explication des commandes

-confirm-license : Accepte la licence sans le demander à l'utilisateur pendant la configuration.

-opensource : Installe la version libre de Qt.

-release : Ce paramètre désactive la construction avec les symboles de débogage.

-nomake examples -nomake demos : Ces paramètres désactivent la construction de programmes qui n'ont d'intérêt que pour un développeur utilisant Qt.

-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 de Network Information Service (NIS, service d'informations réseau) qui a été déprécié dans la version récente de Glibc.

-no-phonon -no-phonon-backend : Ces paramètres désactivent la construction de la bibliothèque Phonon fournie. Une meilleure version est fournie par le paquet phonon-4.8.3.

-dbus-linked -openssl-linked : Ces paramètres activent la liaison explicites des bibliothèques D-Bus et OpenSSL dans les bibliothèques Qt au lieu de les dlopen()-er.

-no-openvg : Ce paramètre désactive le support de OpenVG dans Qt.

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

-no-dbus : Utilisez ce paramètre si vous n'avez pas installé D-Bus.

Configuration de Qt

Informations sur la configuration

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

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

QT4DIR=/usr
QTDIR=$QT4DIR
export QT4DIR QTDIR

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

Si vous avez installé Qt4 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.

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/qt4/lib

# End Qt addition
EOF

ldconfig

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

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

QT4DIR=/opt/qt4
QTDIR=$QT4DIR

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

export QT4DIR QTDIR

# End /etc/profile.d/qt4.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, qdoc3, qhelpconverter, qhelpgenerator, qmake, qmlplugindump, qmlviewer, qt3to4, qtconfig, qttracereplay, rcc, uic3, uic, xmlpatterns et xmlpatternsvalidator
Bibliothèques installées: libQtUiTools.a, libQt3Support.so, libQtCLucene.so, libQtCore.so, libQtDBus.so, libQtDeclarative.so, libQtDesignerComponents.so, libQtDesigner.so, libQtGui.so, libQtHelp.so, libQtMultimedia.so, libQtNetwork.so, libQtOpenGL.so, libQtScript.so, libQtScriptTools.so, libQtSql.so, libQtSvg.so, libQtTest.so, libQtWebKit.so, libQtXmlPatterns.so et libQtXml.so, et plusieurs greffons dans /opt/qt4/imports et /opt/qt4/plugins
Répertoires installés: /usr/include/qt4, /usr/lib/qt4, /usr/share/doc/qt4, and /usr/share/qt4 OU /opt/qt4 et /opt/qt-4.8.7

Descriptions courtes

assistant

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

designer

est un constructeur GUI complet. Il inclut des fonctionnalités puissantes telles qu'un mode de prévisualisation, l'aménagement automatique des widgets, le support des widgets personnalisés et un éditeur avancé de propriétés.

lconvert

est une partie de la chaîne d'outils linguistique de Qt4. Il peut être utilisé comme un outil seul pour convertir et filtrer les fichiers de données de traduction.

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.

qdoc3

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.

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.

qmlplugindump

est un outil pour créer un fichier qmltypes.

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.

qt3to4

qt3to4 est un outil pour aider à mettre à jour du code Qt3 vers Qt4.

qtconfig

est utilisé pour personnaliser l'apparence des applications Qt.

qttracereplay

est un outil pour rejouer toutes les opérations de dessin enregistrées avec -graphicssystem trace dans un tampon.

rcc

est un compilateur de ressources utilisé avec le designer.

uic

est un compilateur d'interface utilisateur Qt.

uic3

est un outil pour générer du code Qt4 hors des fichiers de l'interface utilisateur générés par la version Qt3 de designer.

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-02-25 04:22:02 +0100