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 chiamato windeployqt è 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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow