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 llama windeployqt es la windeployqt ).
  • 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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow