Qt-6.7.2

Introduction à Qt6

Qt6 est un cadriciel application multi-plateforme qui est beaucoup utilisé pour développer des applications avec une interface graphique (GUI) (auquel cas Qt6 est classé comme boite à outils de widgets) et pour développer des programmes non graphiques comme des outils en ligne de commande et des consoles pour les serveurs.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

Dpendances de Qt6

Requises

Bibliothèques Xorg

Recommandées

Facultatives

BlueZ-5.77 (pour sdpscanner et à l'exécution pour le module QtConnectivity), GTK+-3.24.43, ibus-1.5.30, MariaDB-10.11.8 ou MySQL, MIT Kerberos V5-1.21.3, pciutils-3.13.0, PostgreSQL-16.4, PulseAudio-17.0, SDL2-2.30.6, unixODBC-2.3.12, assimp, Flite, Firebird, FreeTDS, libproxy, OpenAL, speech-dispatcher et tslib

Paramétrer le préfixe d'installation

Installer dans /opt/qt6

Les auteurs de BLFS recommandent d'installer Qt6 dans un autre répertoire que /usr, c'est-à-dire dans /opt/qt6. Cela est nécessaire pour éviter des conflits avec Qt5. Pour cela, paramétrez la variable d'environnement suivante :

export QT6PREFIX=/opt/qt6
[Astuce]

Astuce

Parfois les chemins d'installation sont codés en dur dans les fichiers installés. C'est la raison pour laquelle /opt/qt6 est utilisé en préfixe d'installation au lieu de /opt/qt-6.7.2. Pour créer un répertoire Qt6 versionné, vous pouvez renommer le répertoire et créer un lien symbolique :

mkdir -pv /opt/qt-6.7.2
ln -sfnv qt-6.7.2 /opt/qt6

Plus tard, vous voudrez peut-être installer d'autres version de Qt6. Pour cela, supprimez simplement le lien symbolique, créez un nouveau répertoire versionné et recréez le lien symbolique /opt/qt6 avant de construire la nouvelle version. La version de Qt6 que vous utilisez dépend seulement de l'endroit où pointe le lien symbolique.

[Note]

Note

Si qca-2.3.9 est installé et que vous réinstallez ou mettez à jour ce paquet, alors qca devra être réinstallé.

Installation de Qt6

[Avertissement]

Avertissement

Si Qt6 est réinstallé dans le même répertoire qu'une instance existante, exécutez les commandes de l'utilisateur root, comme make install, à partir d'une console ou d'un gestionnaire de fenêtre qui n'est pas basé sur Qt6. Cela peut modifier les bibliothèques de Qt6 qui ne seront alors pas utilisées pendant le processus d'installation.

[Attention]

Attention

Si vous n'avez pas installé certaines dépendances recommandées, examinez la sortie de ./configure --help pour vérifier comment les désactiver ou utiliser une version interne intégrée dans l'archive des sources.

[Note]

Note

Le temps de construction et l'espace requis pour un Qt6 complet sont assez élevés. Les instructions ci-dessous ne construisent pas les tutoriels et les exemples. Supprimer la ligne -nomake créera des ressources supplémentaires.

[Note]

Note

Les auteurs de BLFS ne recommandent pas d'installer Qt6 dans la hiérarchie /usr car cela rend difficile la découverte de ses composants et la mise à jour vers une nouvelle version. Certains programmes entent également en conflit avec ceux installés par Qt5.

Désactivez une déclaration en conflit sur les systèmes i686 :

if [ "$(uname -m)" == "i686" ]; then
    sed -e "/^#elif defined(Q_CC_GNU_ONLY)/s/.*/& \&\& 0/" \
        -i qtbase/src/corelib/global/qtypes.h
fi

Installez Qt6 en exécutant les commandes suivantes :

./configure -prefix $QT6PREFIX      \
            -sysconfdir /etc/xdg    \
            -dbus-linked            \
            -openssl-linked         \
            -system-sqlite          \
            -nomake examples        \
            -no-rpath               \
            -journald               \
            -skip qt3d              \
            -skip qtquick3dphysics  \
            -skip qtwebengine       \
            -W no-dev               &&
ninja

Ce paquet n'a pas de suite de tests.

Maintenant, en tant qu'utilisateur root :

ninja install

Supprimez les références au répertoire de construction des fichiers de dépendance des bibliothèques installées (prl) en exécutant la commande suivante en tant qu'utilisateur root :

find $QT6PREFIX/ -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. De nouveau en tant qu'utilisateur root :

pushd qttools/src &&

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

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

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

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


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

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

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

Explication des commandes

-nomake examples : ce paramètre désactive la construction des programmes d'exemple inclus dans l'archive des sources. Supprimez-le si vous voulez les construire.

-skip qt3d : ce paramètre désactive la construction de la prise en charge de qt3d. Il y a un problème avec la construction de ces fichiers sans une bibliothèque externe et aucun paquet de BLFS n'utilise qt3d.

-system-sqlite : ce paramètre active l'utilisation de la version du système de SQLite.

-dbus-linked -openssl-linked : ces paramètres activent explicitement la liaison des bibliothèques D-Bus et OpenSSL aux bibliothèques Qt6 au lieu d'utiliser dlopen().

-journald : ce paramètre permet d'envoyer les messages de Qt vers le système de journalisation journald.

-skip qtwebengine : Ce paramètre désactive la construction de QtWebEngine. Les éditeurs de BLFS ont choisi de construire qtwebengine-6.7.2 séparément.

-skip qtquick3dphysics : ce paramètre désactive la construction du sous-module Qt Quick 3D Physics. Sur les systèmes 32 bits, cela fait échouer la construction avec une erreur dans la copie du SDK PhysX embarquée dans Qt6.

Configuration de Qt6

Informations sur la configuration

Si Sudo-1.9.15p5 est installé, QT6DIR devrait également être disponible au super-utilisateur. Exécutez les commandes suivantes en tant qu'utilisateur root :

cat > /etc/sudoers.d/qt << "EOF"
Defaults env_keep += QT6DIR
EOF

Vous devez maintenant mettre à jour les fichiers de configuration suivants pour que Qt6 soit correctement trouvé par les autres paquets et processus du système.

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

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

/opt/qt6/lib

# End Qt addition
EOF

ldconfig

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

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

QT6DIR=/opt/qt6

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

export QT6DIR

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

Contenu

Programmes installés: androiddeployqt (lien en dur vers androiddeployqt6), androiddeployqt6, androidtestrunner, assistant, balsam, balsamui, canbusutil, cooker, designer, instancer, lconvert, linguist, lrelease, lupdate, materialeditor, meshdebug, pixeltool, qdbus, qdbuscpp2xml, qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qmake (lien en dur vers qmake6), qmake6, qml, qmldom, qmleasing, qmlformat, qmllint, qmlls, qmlplugindump, qmlpreview, qmlprofiler, qmlscene, qmltc, qmltestrunner, qmltime, qqem, qsb, qtdiag (lien en dur vers qtdiag6), qtdiag6, qtpaths (lien en dur vers qtpaths6), qtpaths6, qtplugininfo, qt-cmake, qt-cmake-create, qt-configure-module, shadergen et shapegen
Bibliothques installes: libQt6Bluetooth.so, libQt6Bodymovin.so, libQt6BundledEmbree.a, libQt6BundledPhysX.a, libQt6BundledResonanceAudio.a, libQt6Charts.so, libQt6ChartsQml.so, libQt6Coap.so, libQt6Concurrent.so, libQt6Core.so, libQt6Core5Compat.so, libQt6DBus.so, libQt6DataVisualization.so, libQt6DataVisualizationQml.so, libQt6DeclarativeOpcua.so, libQt6Designer.so, libQt6DesignerComponents.so, libQt6DeviceDiscoverySupport.a, libQt6EglFSDeviceIntegration.so, libQt6EglFsKmsGbmSupport.so, libQt6EglFsKmsSupport.so, libQt6ExampleIcons.a, libQt6FbSupport.a, libQt6Graphs.so, libQt6Grpc.so, libQt6Gui.so, libQt6Help.so, libQt6HttpServer.so, libQt6InputSupport.a, libQt6JsonRpc.so, libQt6KmsSupport.a, libQt6LabsAnimation.so, libQt6LabsFolderListModel.so, libQt6LabsQmlModels.so, libQt6LabsSettings.so, libQt6LabsSharedImage.so, libQt6LabsWavefrontMesh.so, libQt6LanguageServer.so, libQt6Location.so, libQt6Mqtt.so, libQt6Multimedia.so, libQt6MultimediaQuick.so, libQt6MultimediaWidgets.so, libQt6Network.so, libQt6NetworkAuth.so, libQt6Nfc.so, libQt6OpcUa.so, libQt6OpenGL.so, libQt6OpenGLWidgets.so, libQt6PacketProtocol.a, libQt6Positioning.so, libQt6PositioningQuick.so, libQt6PrintSupport.so, libQt6Protobuf.so, libQt6Qml.so, libQt6QmlCompiler.so, libQt6QmlCore.so, libQt6QmlDebug.a, libQt6QmlDom.a, libQt6QmlLocalStorage.so, libQt6QmlLS.a, libQt6QmlModels.so, libQt6QmlToolingSettings.a, libQt6QmlTypeRegistrar.a, libQt6QmlWorkerScript.so, libQt6QmlXmlListModel.so, libQt6Quick.so, libQt6Quick3D.so, libQt6Quick3DAssetImport.so, libQt6Quick3DAssetUtils.so, libQt6Quick3DEffects.so, libQt6Quick3DGlslParser.so, libQt6Quick3DHelpers.so, libQt6Quick3DHelpersImpl.so, libQt6Quick3DIblBaker.so, libQt6Quick3DParticleEffects.so, libQt6Quick3DParticles.so, libQt6Quick3DPhysics.so, libQt6Quick3DPhysicsHelpers.so, libQt6Quick3DRuntimeRender.so, libQt6Quick3DSpatialAudio.so, libQt6Quick3DUtils.so, libQt6QuickControls2.so, libQt6QuickControls2Impl.so, libQt6QuickControlsTestUtils.a, libQt6QuickDialogs2.so, libQt6QuickDialogs2QuickImpl.so, libQt6QuickDialogs2Utils.so, libQt6QuickEffects.so, libQt6QuickLayouts.so, libQt6QuickParticles.so, libQt6QuickShapes.so, libQt6QuickTemplates2.so, libQt6QuickTest.so, libQt6QuickTestUtils.a, libQt6QuickTimeline.so, libQt6QuickWidgets.so, libQt6RemoteObjects.so, libQt6RemoteObjectsQml.so, libQt6Scxml.so, libQt6ScxmlQml.so, libQt6Sensors.so, libQt6SensorsQuick.so, libQt6SerialBus.so, libQt6SerialPort.so, libQt6ShaderTools.so, libQt6SpatialAudio.so, libQt6Sql.so, libQt6StateMachine.so, libQt6StateMachineQml.so, libQt6Svg.so, libQt6SvgWidgets.so, libQt6TextToSpeech.so, libQt6UiTools.so, libQt6VirtualKeyboard.so, libQt6WaylandClient.so, libQt6WaylandCompositor.so, libQt6WaylandEglClientHwIntegration.so, libQt6WaylandEglCompositorHwIntegration.so, libQt6WebChannel.so, libQt6WebChannelQuick.so, libQt6WebSockets.so, libQt6WebView.so, libQt6WebViewQuick.so, libQt6Widgets.so, libQt6WlShellIntegration.so, libQt6XcbQpa.so et libQt6Xml.so
Répertoires installés: /opt/qt6 et /opt/qt-6.7.2

Descriptions courtes

assistant

est un outil pour présenter la documentation en ligne

balsam

est un outil pour convertir des scènes 3D de divers outils de création vers le format QML, utilisé par la nouvelle bibliothèque QtQuick 3D.

canbustil

est un outil pour gérer des trames de bus CAN arbitraires. Un CAN (Controller Area Network) est un standard de bus de transport conçu pour permettre à des microcontrôleurs et des périphériques de communiquer entre eux dans des applications sans ordinateur hôte

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

fait partie de la chaîne d'outils linguistique de Qt6. 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 des fichiers de traduction au format TS (basé sur le format XML) et produit des fichiers de message utilisés par l'application

lupdate

cherche les chaînes traduisibles dans les sources, les en-têtes et les fichiers d'interface Qt Designer spécifiés et enregistre les messages extraits dans des fichiers de traduction qui seront traités par lrelease

meshdebug

affiche les informations sur les fichiers mesh de qtquick-3d

pixeltool

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

qdbus

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

qdbuscpp2xml

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

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.

qdistancefieldgenerator

permet la prégénération d'un cache de polices pour Text.QtRendering pour accélérer le démarrage d'une application sur l'interface utilisateur a beaucoup de textes ou plusieurs polices, ou un grand nombre de caractères distincts comme pour les systèmes d'écriture CJK

qdoc

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

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

qml

exécute un fichier QML

qmleasing

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

qmlformat

formate des fichiers QML en fonction des conventions de codage de QML

qmllint

est un vérificateur de syntaxe pour les fichiers QML

qmlplugindump

est un outil pour créer un fichier qmltypes

qmlpreview

est un outil utilisé pour analyser les applications QML

qmlprofiler

est un outil qui surveille les fichiers QML et JavaScript sur le disque et met à jour l'application en direct en cas de changement

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

qtdiag

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

qtpaths

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

qtplugininfo

affiche les métadonnées des greffons Qt au format JSON