Qt
Distribuzione di applicazioni Qt
Ricerca…
Distribuzione su Windows
Qt fornisce uno strumento di distribuzione per Windows: windeployqt
. Lo strumento controlla un eseguibile dell'applicazione Qt per le sue dipendenze nei moduli Qt e crea una directory di distribuzione con i file Qt necessari per eseguire l'eseguibile ispezionato. Un possibile script potrebbe essere simile a:
set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe
Il comando set
viene chiamato per aggiungere la directory bin
di Qt alla variabile di ambiente PATH
. windeployqt
viene quindi chiamato:
- Il percorso della directory di implementazione viene fornito un argomento facoltativo fornito con il parametro
--dir
(il percorso predefinito in cui viene chiamatowindeployqt
è il valore predefinito). - Il percorso dell'eseguibile da ispezionare viene indicato come ultimo argomento.
La directory di implementazione può quindi essere associata all'eseguibile.
NOTA:
Se stai utilizzando Qt5.7.0 precompilato con vs2013 su Windows (non sono sicuro che tutte le versioni abbiano questo problema) , esiste la possibilità di copiare manualmente <QTDIR>\5.7\msvc2015\qml
nella directory bin di il tuo programma In caso contrario, il programma si chiuderà automaticamente dopo l'avvio.
Vedi anche la documentazione Qt .
Integrazione con CMake
È possibile eseguire windeployqt
e macdeployqt
da CMake, ma prima è necessario trovare il percorso degli eseguibili:
# 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}")
Affinché windeployqt
trovi le librerie Qt nella loro posizione installata, la cartella deve essere aggiunta a %PATH%
. Per fare questo per un obiettivo chiamato myapp
dopo essere stato costruito:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E
env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE:myapp>"
COMMENT "Running windeployqt..."
)
Per eseguire macdeployqt
su un bundle, sarebbe fatto in questo modo:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE_DIR:myapp>/../.."
-always-overwrite
COMMENT "Running macdeployqt..."
)
Distribuzione su Mac
Qt offre uno strumento di distribuzione per Mac: lo strumento di distribuzione Mac.
Lo strumento di distribuzione Mac è disponibile in QTDIR/bin/macdeployqt
. È progettato per automatizzare il processo di creazione di un bundle applicativo distribuibile che contiene le librerie Qt come framework privati.
Lo strumento di distribuzione mac distribuisce anche i plugin Qt, in base alle seguenti regole (a meno che non venga utilizzata l'opzione -no-plugins ):
- Il plug-in della piattaforma viene sempre distribuito.
- Le versioni di debug dei plug-in non vengono distribuite.
- I plug-in di progettazione non vengono distribuiti.
- I plug-in di formato immagine vengono sempre distribuiti.
- Il plug-in di supporto per la stampa viene sempre distribuito.
- I plugin del driver SQL vengono distribuiti se l'applicazione utilizza il modulo Qt SQL.
- I plug-in di script vengono distribuiti se l'applicazione utilizza il modulo Qt Script.
- Il plug-in per icone SVG viene distribuito se l'applicazione utilizza il modulo QG SVG.
- Il plug-in per l'accessibilità è sempre implementato.
Per includere una libreria di terze parti nel pacchetto di applicazioni, copiare manualmente la raccolta nel pacchetto, dopo aver creato il pacchetto.
Per utilizzare macdeployqt
strumento macdeployqt
è possibile aprire il terminale e digitare:
$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app
Il file dell'app ora conterrà tutte le librerie Qt utilizzate come framework privati.
macdeployqt
supporta anche le seguenti opzioni
Opzione | Descrizione |
---|---|
verbose = <0-3> | 0 = nessun output, 1 = errore / avviso (predefinito), 2 = normale, 3 = debug |
-no-plugins | Ignora la distribuzione del plug-in |
-dmg | Creare un'immagine del disco .dmg |
-no-strip | Non eseguire 'strip' sui binari |
-use-debug-libs | Distribuire con versioni di debug di framework e plug-in (implica -no-strip) |
-executable = | Lascia che il dato eseguibile usi anche i framework distribuiti |
-qmldir = | Distribuire le importazioni utilizzate dai file .qml nel percorso specificato |
Informazioni dettagliate possono essere fonte di informazioni sulla documentazione Qt
Distribuzione su Linux
C'è uno strumento di distribuzione per linux su GitHub . Anche se non è perfetto, è collegato al wiki Qt. Si basa concettualmente sul Qt Mac Deployment Tool e funziona in modo simile fornendo un'Immagine .
Dato che un file desktop deve essere fornito con un'Immagine, linuxdeployqt
può usarlo per determinare i parametri della build.
linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop
Dove il file desktop specifica l'eseguibile da eseguire (con EXEC=
), il nome dell'applicazione e un'icona.