Qt-4.8.5

Introduction à Qt

Qt est un environnement de travail d'applications multi-plate-forme qui est largement utilisé pour développer des applications avec une interface utilisateur graphique (GUI) (dans quelques cas Qt est classé comme une trousse de widgets), et aussi utilisé pour developper des programmes non-GUI comme les outils en ligen de commande et les consoles pour les serveurs. Un des utilisateurs majeurs 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 et MesaLib-9.2.0

Recommandées

Facultative

Cups-1.6.3, gtk+-2.24.20 (support des thèmes GTK+ 2), GStreamer Base Plug-ins-0.10.36 (pour les vidéos QtWebKit HTML5), MySQL-5.6.13, PostgreSQL-9.3.0, PulseAudio-4.0 unixODBC-2.3.1, et qtchooser-31 (si Qt5 est aussi installé et dans /usr), et unixODBC-2.3.1

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

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

[Avertissement]

Avertissement

Si Qt4 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 Qt4. Elle écrase les bibliothèques Qt4 qui ne devraient pas être utilisées pendant le processus d'installation.

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

Méthode 1: Installation dans /usr

Installez Qt4 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 -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
     config.tests/unix/libmng/libmng.cpp &&
./configure -prefix         /usr                 \
            -bindir         /usr/lib/qt4/bin     \
            -plugindir      /usr/lib/qt4/plugins \
            -importdir      /usr/lib/qt4/imports \
            -headerdir      /usr/include/qt4     \
            -datadir        /usr/share/qt4       \
            -sysconfdir     /etc/xdg             \
            -docdir         /usr/share/doc/qt4   \
            -demosdir       /usr/share/doc/qt4/demos    \
            -examplesdir    /usr/share/doc/qt4/examples \
            -translationdir /usr/share/qt4/translations \
            -confirm-license   \
            -opensource        \
            -release           \
            -dbus-linked       \
            -openssl-linked    \
            -system-sqlite     \
            -no-phonon         \
            -no-phonon-backend \
            -no-nis            \
            -no-openvg         \
            -nomake demos      \
            -nomake examples   \
            -optimized-qmake   &&
make

Ce paquet n'a pas de suite de tests.

Maintenant, en tant qu'utilisateur root :

make install &&
rm -rf /usr/tests &&
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

Effacez les références au répertoire d'installation des fichiers installés en lançant les commandes suivantes en tant qu'utilisateur root:

for file in 3Support CLucene Core DBus Declarative DesignerComponents \
            Designer Gui Help Multimedia Network OpenGL Script \
            ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml
do
  sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' \
       /usr/lib/libQt${file}.prl
  perl -pi -e "s, -L$PWD/?\S+,,g" /usr/lib/pkgconfig/Qt${file}.pc
done
unset file

Si vous installez aussi Qt5 dans /usr, créez un lien symbolique entre les exécutables Qt4 dans /usr/bin en lançant les commandes suivantes en tant qu'utilisateur root:

for file in /usr/lib/qt4/bin/*
do
  ln -sfv ../lib/qt4/bin/$(basename $file) /usr/bin/$(basename $file)-qt4
done

Méthode 2: Installation dans /opt/qt-4.8.5

Cette partie fournit une façon alternative d'installer Qt4 en installant la plus part des fichiers dans le répertoire /opt. Cela permet de gérer tous les fichiers relatifs à Qt4 dans un endroit. Par exemple, une nouvelle version de Qt4 peut être installée sans écraser l'installation existante et une instance entière de Qt4 peut facilement être supprimée. Cependant, cela à le désavantage de demander quelques configurations supplémentaires.

Installez Qt dans /opt/qt-4.8.5 en lançant les commendes suivantes:

sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
     config.tests/unix/libmng/libmng.cpp &&
export QTDIR=/opt/qt-4.8.5
./configure -prefix $QTDIR       \
            -sysconfdir /etc/xdg \
            -confirm-license     \
            -opensource          \
            -release             \
            -dbus-linked         \
            -openssl-linked      \
            -system-sqlite       \
            -plugin-sql-sqlite   \
            -no-phonon           \
            -no-phonon-backend   \
            -no-nis              \
            -no-openvg           \
            -nomake demos        \
            -nomake examples     \
            -optimized-qmake     &&
make

Maintenant, en tant qu'utilisateur root:

make install                 &&
ln -svfn qt-$VERSION /opt/qt &&
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

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

for file in 3Support CLucene Core DBus Declarative DesignerComponents \
            Designer Gui Help Multimedia Network OpenGL Script \
            ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml; do
  sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' \
       $QTDIR/lib/libQt${file}.prl
  perl -pi -e "s, -L$PWD/?\S+,,g" $QTDIR/lib/pkgconfig/Qt${file}.pc
done
unset file

Explications des commandes

sed -i "..." ...: Cette commande corrige la détection de libmng 2.0.

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

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

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

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

Configuration de Qt

Informations de configuration

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

cat > /etc/profile.d/qt.sh << EOF
# Begin /etc/profile.d/qt.sh
QTDIR=/usr
export QTDIR
# 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.

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/qt/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
   
QTDIR=/opt/qt
   
pathappend /opt/qt/bin           PATH
pathappend /opt/qt/lib/pkgconfig PKG_CONFIG_PATH
   
export QTDIR
   
# 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/qtconfig-qt4.desktop << "EOF"
[Desktop Entry]
Name=Qt4 Config 
Comment=Configure Qt4 behavior, styles, fonts
Exec=qtconfig-qt4
Icon=qt4logo
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Settings;
EOF
cat > /usr/share/applications/assistant-qt4.desktop << "EOF"
[Desktop Entry]
Name=Qt4 Assistant 
Comment=Shows Qt4 documentation and examples
Exec=assistant-qt4
Icon=assistant-qt4
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=designer-qt4
Icon=designer-qt4
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=linguist-qt4
Icon=linguist-qt4
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=qdbusviewer-qt4
Icon=qdbusviewer-qt4
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Contenu

Programmes installés: assistant-qt4, designer-qt4, lconvert-qt4, linguist-qt4, lrelease-qt4, lupdate-qt4, moc-qt4, pixeltool-qt4, qcollectiongenerator-qt4, qdbuscpp2xml-qt4, qdbus-qt4, qdbusviewer-qt4, qdbusxml2cpp-qt4, qdoc3-qt4, qhelpconverter-qt4, qhelpgenerator-qt4, qmake-qt4, qmlplugindump-qt4, qmlviewer-qt4, qt3to4-qt4, qtconfig-qt4, qttracereplay-qt4, rcc-qt4, uic3-qt4, uic-qt4, xmlpatterns-qt4 et xmlpatternsvalidator-qt4
Bibliothèques installées: 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
Répertoires installés: /usr/include/qt4, /usr/lib/qt4, + /usr/share/doc/qt4 et + /usr/share/qt4

Description courte

assistant-qt4

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

designer-qt4

est un constructeur GUI complètement mûr. 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.

linguist-qt4

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

lrelease-qt4

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

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

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

pixeltool-qt4

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.

qmake-qt4

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.

qt3to4-qt4

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

qtconfig-qt4

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

rcc-qt4

est un compilateur de ressources utilisé avec le designer.

uic-qt4

est un compilateur d'interface utilisateur Qt.

uic3-qt4

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.

Last updated on 2013-06-02 21:23:30 +0200