Recherche…


Déploiement sur Windows

Qt fournit un outil de déploiement pour Windows: windeployqt . L'outil inspecte un exécutable d'application Qt pour ses dépendances aux modules Qt et crée un répertoire de déploiement avec les fichiers Qt nécessaires pour exécuter le fichier exécutable inspecté. Un script possible peut ressembler à:

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

La commande set est appelée pour ajouter le répertoire bin de Qt à la variable d'environnement PATH . windeployqt s'appelle alors:

  • Le chemin d'accès au répertoire de déploiement reçoit un argument facultatif fourni avec le paramètre --dir (par défaut, le chemin d'accès à windeployqt ).
  • Le chemin d'accès à l'exécutable à inspecter est donné en dernier argument.

Le répertoire de déploiement peut ensuite être fourni avec l'exécutable.

REMARQUE:

Si vous utilisez Qt5.7.0 pré-compilé avec vs2013 sous Windows (ne savez pas si toutes les versions ont ce problème) , il est possible que vous ayez besoin de copier manuellement <QTDIR>\5.7\msvc2015\qml dans votre répertoire bin de votre programme Sinon, le programme s'arrêtera automatiquement après le démarrage.

Voir aussi la documentation Qt .

Intégration avec CMake

Il est possible de lancer windeployqt et macdeployqt depuis CMake, mais il faut d'abord trouver le chemin d'accès aux exécutables:

# 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}")

Pour que windeployqt trouve les bibliothèques Qt dans leur emplacement installé, le dossier doit être ajouté à %PATH% . Pour ce faire, pour une cible nommée myapp après avoir été construite:

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

Pour exécuter macdeployqt sur un bundle, cela se ferait comme macdeployqt :

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

Déploiement sur Mac

Qt propose un outil de déploiement pour Mac: l'outil de déploiement Mac.

L'outil de déploiement Mac se trouve dans QTDIR/bin/macdeployqt . Il est conçu pour automatiser le processus de création d’un ensemble d’applications déployable contenant les bibliothèques Qt en tant que structures privées.

L'outil de déploiement mac déploie également les plugins Qt, selon les règles suivantes (sauf si l' option -no-plugins est utilisée ):

  • Le plugin de la plateforme est toujours déployé.
  • Les versions de débogage des plugins ne sont pas déployées.
  • Les plug-ins de concepteur ne sont pas déployés.
  • Les plugins de format d'image sont toujours déployés.
  • Le plug-in de support d'impression est toujours déployé.
  • Les plug-ins de pilote SQL sont déployés si l'application utilise le module SQL Qt.
  • Les plugins de script sont déployés si l'application utilise le module Qt Script.
  • Le plug-in SVG icon est déployé si l'application utilise le module Qt SVG.
  • Le plugin d'accessibilité est toujours déployé.

Pour inclure une bibliothèque tierce dans le regroupement d'applications, copiez la bibliothèque manuellement dans le regroupement, une fois le regroupement créé.

Pour utiliser l'outil macdeployqt , vous pouvez ouvrir le terminal et taper:

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

Le fichier d'application contiendra désormais toutes les bibliothèques Qt utilisées comme frameworks privés.

macdeployqt prend également en charge les options suivantes

Option La description
-verbose = <0-3> 0 = pas de sortie, 1 = erreur / avertissement (par défaut), 2 = normal, 3 = débogage
-no-plugins Ignorer le déploiement du plugin
-dmg Créer une image de disque .dmg
-no-strip Ne lancez pas 'strip' sur les binaires
-use-debug-libs Déployer avec les versions de débogage des frameworks et plugins (implique -no-strip)
-exécutable = Laisser l'exécutable donné utiliser également les frameworks déployés
-qmldir = Déployer les importations utilisées par les fichiers .qml dans le chemin donné

Des informations détaillées peuvent être obtenues sur Qt Documentation

Déploiement sur Linux

Il existe un outil de déploiement pour Linux sur GitHub . Bien qu'il ne soit pas parfait, il est lié au wiki Qt. Il repose conceptuellement sur l’outil de déploiement Mac Qt et fonctionne de la même manière en fournissant une AppImage .

Étant donné qu'un fichier de bureau doit être fourni avec AppImage, linuxdeployqt peut l'utiliser pour déterminer les paramètres de la génération.

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

Où le fichier de bureau spécifie l'exécutable à exécuter (avec EXEC= ), le nom de l'application et une icône.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow