Qt-6.8.0

Introduksjon til Qt6

Qt6 er et applikasjonsrammeverk på tvers av plattformer som er mye brukt for å utvikle applikasjonsprogramvare med et grafisk brukergrensesnitt (GUI) (i hvilke tilfeller Qt6 er klassifisert som et skjermelement verktøysett), og brukes også til å utvikle ikke-GUI programmer som kommandolinjeverktøy og konsoller for servere.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

Qt6 Avhengigheter

Påkrevd

Xorg Biblioteker

Anbefalt

Valgfri

BlueZ-5.79 (for sdpscanner, og ved kjøretid for QtConnectivity moduler), GTK+-3.24.43, ibus-1.5.31, LLVM-19.1.0 (med Clang), MariaDB-11.4.4 eller MySQL, MIT Kerberos V5-1.21.3, pciutils-3.13.0, PostgreSQL-17.0, PulseAudio-17.0, SDL2-2.30.9, unixODBC-2.3.12, assimp, Flite, Firebird, FreeTDS, libproxy, OpenAL, speech-dispatcher, og tslib

Stille inn installasjonsprefikset

Installere i /opt/qt6

BLFS redaktørene anbefaler å installere Qt6 i en annen mappe enn /usr, dvs. /opt/qt6. For å gjøre dette, sett følgende miljøvariabel:

export QT6PREFIX=/opt/qt6
[Tips]

Tips

Noen ganger er installasjonsbanene hardkodet til installerte filer. Dette er grunnen til at /opt/qt6 brukes som installasjonsprefiks i stedet for /opt/qt-6.8.0. For å lage en versjonert Qt6 mappe, du kan gi nytt navn til mappen og lage en symbolkobling:

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

Senere vil du kanskje installere andre versjoner av Qt6. For å gjøre det, fjern bare symbolkoblingen, opprett den nye versjonsmappen, og lag på nytt /opt/qt6 symbolkoblingen igjen før du bygger den nye versjonen. Hvilken versjon av Qt6 du bruker avhenger bare av hvor symbollinken peker.

[Notat]

Notat

Hvis qca-2.3.9 er installert og du deretter installere eller oppdatere denne pakken på nytt må qca installeres på nytt.

Installasjon av Qt6

[Advarsel]

Advarsel

Hvis Qt6 blir reinstallert i samme mappe som en eksisterende økt, kjør kommandoene utført av root, som make install, fra en konsoll eller ikke-Qt6 basert vindusbehandler. Den overskriver Qt6 biblioteker som ikke skal være i bruk under installasjonsprosessen.

[Obs]

Obs

Hvis du ikke installerte noen av de anbefalte avhengighetene, undersøk ./configure --help utdata for å sjekke hvordan du deaktiverer dem eller bruk interne versjoner samlet i kildens tarball.

[Notat]

Notat

Byggetiden og plassen som kreves for hele Qt6 er ganske lang. Instruksjonene nedenfor bygger ikke opplæringen og eksemplene. Fjerning av -nomake linjen vil skape ekstra ressurser..

[Notat]

Notat

BLFS redaktørene anbefaler ikke å installere Qt6 inn i /usr hierarkiet fordi det blir vanskelig å finne komponenter og for å oppdatere til en ny versjon.

Deaktiver en motstridende deklarasjon på i686-systemer:

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

Installer Qt6 ved å kjøre følgende kommandoer:

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

Denne pakken kommer ikke med en testpakke.

Nå, som root bruker:

ninja install

Fjern referanser til byggemappen fra installerte bibliotekers avhengighet (prl) filer ved å kjøre følgende kommando som root bruker:

find $QT6PREFIX/ -name \*.prl \
   -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Installer bilder og lag menyoppføringer for installerte applikasjoner. Igjen som root bruker:

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

Parameterforklaringer

-nomake examples: Denne bryteren deaktiverer bygging av eksempelprogrammene inkludert i kilde tarballen. Fjern den hvis du vil bygge dem.

-skip qt3d: Denne bryteren deaktiverer bygging av qt3d støtte. Det er et problem å bygge disse filene uten et eksternt bibliotek og ingen pakker i BLFS bruker qt3d.

-system-sqlite: Denne bryteren aktiverer bruk av systemversjonen av SQLite.

-dbus-linked -openssl-linked: Disse brytere aktiverer eksplisitt kobling av D-Bus og OpenSSL biblioteker inn i Qt6 biblioteker i stedet for dlopen()-ing dem.

-journald: Denne bryteren lar deg sende Qt meldinger til journald loggingssystem.

-skip qtwebengine: Denne bryteren deaktiverer bygging av QtWebEngine. BLFS redaksjonen har valgt å bygge qtwebengine-6.8.0 hver for seg.

-skip qtquick3dphysics: Denne bryteren deaktiverer bygging av Qt Quick 3D Physics undermodulen. På 32-bits systemer vil dette føre til at byggeprosessen mislykkes med en inlining feil i Qt6 pakkene av PhysX SDK.

Konfigurere Qt6

Konfigurasjonsinformasjon

Hvis Sudo-1.9.16p1 er installert, skal QT6DIR være tilgjengelig for superbrukeren også. Utfør følgende kommandoer som root bruker:

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

Du må nå oppdatere følgende konfigurasjonsfiler slik at Qt6 blir riktig funnet av andre pakker og systemprosesser.

Som root bruker, oppdater /etc/ld.so.conf filen og den dynamiske linkeren kjøretidsbufferfil:

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

/opt/qt6/lib

# End Qt addition
EOF

ldconfig

Som root bruker, opprett /etc/profile.d/qt6.sh filen:

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

Innhold

Installerte Programmer: androiddeployqt (hard link til androiddeployqt6), androiddeployqt6, androidtestrunner, assistant, balsam, balsamui, canbusutil, cooker, designer, instancer, lconvert, linguist, lrelease, lupdate, materialeditor, meshdebug, pixeltool, qdbus, qdbuscpp2xml, qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qmake (hard link til qmake6), qmake6, qml, qmldom, qmleasing, qmlformat, qmllint, qmlls, qmlplugindump, qmlpreview, qmlprofiler, qmlscene, qmltc, qmltestrunner, qmltime, qqem, qsb, qtdiag (hard link til qtdiag6), qtdiag6, qtpaths (hard link til qtpaths6), qtpaths6, qtplugininfo, qt-cmake, qt-cmake-create, qt-configure-module, shadergen, og shapegen
Installerte Biblioteker: 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, og libQt6Xml.so
Installerte Mapper: /opt/qt6 og /opt/qt-6.8.0

Korte Beskrivelser

assistant

er et verktøy for å presentere nettbasert dokumentasjon

balsam

er et verktøy for å konvertere 3D scener fra ulike opprettelsesverktøy til QML format, for bruk av det nye QtQuick 3D-biblioteket

canbustil

er et verktøy for å håndtere vilkårlige CAN bussrammer. Et Controller Area Network (CAN) er en standard for kjøretøybuss for å tillate mikrokontrollere og enheter å kommunisere med hverandre i applikasjoner uten vertsdatamaskin

designer

er en fullverdig GUI bygger. Det inkluderer kraftige funksjoner som forhåndsvisningsmodus, automatisk skjermelement stil, støtte for egendefinerte skjermelementer og en avansert eiendomsredigerer

lconvert

er en del av Qt6s Linguist verktøykjede. Den kan brukes som et frittstående verktøy for å konvertere og filtrere oversettelsesdatafiler

linguist

gir støtte for å oversette applikasjoner til lokale språk

lrelease

er et enkelt kommandolinjeverktøy. Den leser XML basert oversettelse filer i TS format og produserer meldingsfiler som brukes av applikasjoner

lupdate

finner oversettelige strenger i den angitte kilden, deklarasjonen og Qt Designer grensesnittfiler, og lagrer de utpakkede meldingene i oversettelsesfiler som skal behandles av lrelease

meshdebug

viser informasjon om qtquick-3d mesh filer

pixeltool

er en skrivebordsforstørrelsesglass - mens du beveger musen rundt skjermen, vil den vise det forstørrede innholdet i vinduet

qdbus

viser tilgjengelige tjenester, objektbaner, metoder, signaler og egenskapene til objekter på en buss

qdbuscpp2xml

tar en C++ kildefil og genererer en D-Bus XML definisjon av grensesnittet

qdbusviewer

er en grafisk D-Bus leser

qdbusxml2cpp

er et verktøy som kan brukes til å analysere grensesnittbeskrivelser og produsere statisk kode som representerer disse grensesnittene,

qdistancefieldgenerator

lar en fontbuffer forhåndsgenereres for at Text.QtRendering skal øke hastigheten oppstart av en applikasjon hvis brukergrensesnittet har mye tekst, eller flere fonter, eller en stor mengde distinkte tegn, f.eks. i CJK skrivesystemer

qdoc

er et verktøy som brukes av Qt Utviklere for å generere dokumentasjon for programvareprosjekter

qmake

bruker informasjon som er lagret i prosjektfiler til bestemme hva som skal gå i makefilene det genererer

qml

kjører en QML fil

qmleasing

er et verktøy som brukes til å definere lettelseskurvene ved hjelp av en interaktiv kurveredigerer

qmlformat

formaterer QML filer i henhold til QML kodingskonvensjonene

qmllint

er en syntakskontroll for QML filer

qmlplugindump

er et verktøy for å lage en qmltypes fil

qmlpreview

er et verktøy som brukes til å analysere QML applikasjoner

qmlprofiler

er et verktøy som ser på QML og JavaScript filer på disk og oppdaterer applikasjonen live med eventuelle endringer

qmlscene

er et verktøy som laster og viser QML dokumenter selv før applikasjonen er komplett

qmltestrunner

er et verktøy som brukes til å lage tester

qtdiag

er et verktøy for å rapportere diagnostisk informasjon om Qt og dens miljø

qtpaths

er et verktøy for å spørre Qt baneinformasjon

qtplugininfo

dumper metadata om Qt programtillegg i JSON format