Suche…


Bereitstellung unter Windows

Qt stellt ein Bereitstellungstool für Windows windeployqt : windeployqt . Das Tool untersucht eine ausführbare Qt-Anwendungsdatei auf ihre Abhängigkeiten zu Qt-Modulen und erstellt ein Bereitstellungsverzeichnis mit den erforderlichen Qt-Dateien, um die geprüfte ausführbare Datei auszuführen. Ein mögliches Skript könnte wie folgt aussehen:

set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe

Der Befehl set wird aufgerufen, um das bin Verzeichnis von Qt der Umgebungsvariable PATH hinzuzufügen. windeployqt heißt dann:

  • Der Pfad zum Implementierungsverzeichnis erhält ein optionales Argument, das mit dem Parameter --dir (Standardwert ist der Pfad, in dem windeployqt aufgerufen wird).
  • Der Pfad zur zu prüfenden ausführbaren Datei wird als letztes Argument angegeben.

Das Implementierungsverzeichnis kann dann mit der ausführbaren Datei gebündelt werden.

HINWEIS:

Wenn Sie vorkompiliertes Qt5.7.0 mit vs2013 unter Windows verwenden (nicht sicher, ob alle Versionen dieses Problem aufweisen) , besteht die Möglichkeit, dass Sie <QTDIR>\5.7\msvc2015\qml in Ihr bin-Verzeichnis von <QTDIR>\5.7\msvc2015\qml Ihr Programm Andernfalls wird das Programm nach dem Start automatisch beendet.

Siehe auch Qt-Dokumentation .

Integration mit CMake

windeployqt und macdeployqt von CMake aus ausgeführt werden, aber zuerst muss der Pfad zu den ausführbaren Dateien gefunden werden:

# Retrieve the absolute path to qmake and then use that path to find
# the binaries
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}")
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${_qt_bin_dir}")

Damit windeployqt die Qt-Bibliotheken an ihrem installierten Speicherort finden kann, muss der Ordner %PATH% hinzugefügt werden. Um dies für ein Ziel namens myapp zu myapp nachdem es erstellt wurde:

add_custom_command(TARGET myapp POST_BUILD
    COMMAND "${CMAKE_COMMAND}" -E
        env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
            "$<TARGET_FILE:myapp>"
    COMMENT "Running windeployqt..."
)

Um macdeployqt auf einem Bundle macdeployqt , gehen Sie folgendermaßen vor:

add_custom_command(TARGET myapp POST_BUILD
    COMMAND "${MACDEPLOYQT_EXECUTABLE}"
        "$<TARGET_FILE_DIR:myapp>/../.."
        -always-overwrite
    COMMENT "Running macdeployqt..."
)

Bereitstellung auf dem Mac

Qt bietet ein Bereitstellungstool für Mac an: Das Mac-Bereitstellungstool.

Das Mac-Bereitstellungstool befindet sich in QTDIR/bin/macdeployqt . Es soll die Erstellung eines bereitstellbaren Anwendungspakets automatisieren, das die Qt-Bibliotheken als private Frameworks enthält.

Das Mac-Bereitstellungstool stellt auch die Qt-Plugins gemäß den folgenden Regeln bereit (sofern die Option -no-plugins nicht verwendet wird ):

  • Das Plattform-Plugin wird immer bereitgestellt.
  • Debug-Versionen der Plugins werden nicht bereitgestellt.
  • Die Designer-Plugins werden nicht bereitgestellt.
  • Die Plugins für das Image-Format werden immer bereitgestellt.
  • Das Print Support Plugin wird immer bereitgestellt.
  • SQL-Treiber-Plugins werden bereitgestellt, wenn die Anwendung das Qt-SQL-Modul verwendet.
  • Skript-Plugins werden bereitgestellt, wenn die Anwendung das Qt-Skriptmodul verwendet.
  • Das SVG-Symbol-Plugin wird bereitgestellt, wenn die Anwendung das Qt-SVG-Modul verwendet.
  • Das Plug-in für Eingabehilfen wird immer bereitgestellt.

Um eine Drittanbieter-Bibliothek in das Anwendungspaket aufzunehmen, kopieren Sie die Bibliothek manuell in das Paket, nachdem das Paket erstellt wurde.

Um das macdeployqt Tool zu verwenden, können Sie das Terminal öffnen und macdeployqt :

$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app

Die App-Datei enthält nun alle Qt-Bibliotheken, die als private Frameworks verwendet werden.

macdeployqt unterstützt auch die folgenden Optionen

Möglichkeit Beschreibung
-verbose = <0-3> 0 = keine Ausgabe, 1 = Fehler / Warnung (Standard), 2 = normal, 3 = Debug
-keine Plugins Überspringen Sie die Plugin-Bereitstellung
-dmg Erstellen Sie ein .dmg-Image
-kein-streifen Führen Sie auf den Binärdateien keinen "Strip" aus
-use-debug-libs Bereitstellung mit Debug-Versionen von Frameworks und Plugins (impliziert -no-strip)
-executable = Lassen Sie die angegebene ausführbare Datei auch die bereitgestellten Frameworks verwenden
-qmldir = Stellen Sie Importe bereit, die von .qml-Dateien im angegebenen Pfad verwendet werden

Detaillierte Informationen können Sie der Qt-Dokumentation entnehmen

Bereitstellung unter Linux

Es gibt ein Deployment-Tool für Linux auf GitHub . Obwohl es nicht perfekt ist, ist es mit dem Qt-Wiki verbunden. Sie basiert konzeptionell auf dem Qt Mac Deployment Tool und funktioniert ähnlich, indem ein AppImage bereitgestellt wird.

Da eine Desktop-Datei mit einem AppImage linuxdeployqt kann linuxdeployqt diese verwenden, um die Parameter des linuxdeployqt zu bestimmen.

linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop

Die Desktop-Datei gibt die ausführbare Datei (mit EXEC= ), den Namen der Anwendung und ein Symbol an.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow