Qt
Despliegue de aplicaciones Qt
Buscar..
Despliegue en windows
Qt proporciona una herramienta de implementación para Windows: windeployqt
. La herramienta inspecciona un ejecutable de la aplicación Qt por sus dependencias a los módulos Qt y crea un directorio de implementación con los archivos Qt necesarios para ejecutar el ejecutable inspeccionado. Un posible guión puede parecer:
set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe
Se llama al comando set
para agregar el directorio bin
de Qt a la PATH
entorno PATH
. windeployqt
se llama entonces:
- La ruta al directorio de implementación recibe un argumento opcional dado con el parámetro
--dir
(la ruta predeterminada donde se llamawindeployqt
es lawindeployqt
). - La ruta al ejecutable que se va a inspeccionar se proporciona como último argumento.
El directorio de implementación se puede agrupar con el ejecutable.
NOTA:
Si está utilizando Qt5.7.0 precompilado con vs2013 en Windows (no estoy seguro de que todas las versiones tengan este problema) , existe la posibilidad de que necesite copiar manualmente <QTDIR>\5.7\msvc2015\qml
a su directorio bin de tu programa De lo contrario, el programa se cerrará automáticamente después del inicio.
Véase también la documentación de Qt .
Integración con CMake
Es posible ejecutar windeployqt
y macdeployqt
desde CMake, pero primero se debe encontrar la ruta a los ejecutables:
# 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}")
Para que windeployqt
encuentre las bibliotecas Qt en su ubicación instalada, la carpeta debe agregarse a %PATH%
. Para hacer esto para un objetivo llamado myapp
después de ser construido:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E
env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE:myapp>"
COMMENT "Running windeployqt..."
)
Para ejecutar macdeployqt
en un paquete, se haría de esta manera:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE_DIR:myapp>/../.."
-always-overwrite
COMMENT "Running macdeployqt..."
)
Implementación en Mac
Qt ofrece una herramienta de implementación para Mac: la herramienta de implementación de Mac.
La herramienta de implementación de Mac se puede encontrar en QTDIR/bin/macdeployqt
. Está diseñado para automatizar el proceso de creación de un paquete de aplicaciones desplegable que contiene las bibliotecas Qt como marcos privados.
La herramienta de implementación de mac también implementa los complementos de Qt, de acuerdo con las siguientes reglas (a menos que se use la opción -no-complementos ):
- El complemento de la plataforma siempre está desplegado.
- Las versiones de depuración de los complementos no están implementadas.
- Los complementos de diseño no están desplegados.
- Los complementos de formato de imagen siempre se implementan.
- El complemento de soporte de impresión siempre se implementa.
- Los complementos del controlador SQL se implementan si la aplicación utiliza el módulo Qt SQL.
- Los complementos de script se implementan si la aplicación utiliza el módulo Qt Script.
- El complemento del icono de SVG se implementa si la aplicación utiliza el módulo Qt SVG.
- El complemento de accesibilidad siempre está desplegado.
Para incluir una biblioteca de terceros en el paquete de la aplicación, copie la biblioteca en el paquete manualmente, después de crear el paquete.
Para usar la herramienta macdeployqt
puede abrir el terminal y escribir:
$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app
El archivo de la aplicación ahora contendrá todas las bibliotecas Qt utilizadas como marcos privados.
macdeployqt
también soporta las siguientes opciones
Opción | Descripción |
---|---|
-verbose = <0-3> | 0 = sin salida, 1 = error / advertencia (predeterminado), 2 = normal, 3 = depuración |
-no-plugins | Omitir despliegue de plugin |
-dmg | Crear una imagen de disco .dmg |
-no-tira | No corras 'strip' en los binarios |
-use-debug-libs | Implementar con versiones de debug de marcos y complementos (implica -no-strip) |
-ejecutable = | Deje que el ejecutable dado también use los frameworks desplegados. |
-qmldir = | Implemente las importaciones utilizadas por los archivos .qml en la ruta dada |
Las informaciones detalladas se pueden encontrar en la documentación de Qt.
Despliegue en linux
Hay una herramienta de implementación para Linux en GitHub . Aunque no es perfecto, está enlazado desde la wiki de Qt. Se basa conceptualmente en la herramienta de implementación de Qt Mac y funciona de manera similar al proporcionar una AppImage .
Dado que un archivo de escritorio se debe proporcionar con una AppImage, linuxdeployqt
puede usar eso para determinar los parámetros de la compilación.
linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop
Donde el archivo de escritorio especifica el ejecutable que se ejecutará (con EXEC=
), el nombre de la aplicación y un icono.