Qt
Distribuera Qt-applikationer
Sök…
Distribuera på windows
Qt tillhandahåller ett distributionsverktyg för Windows: windeployqt
. Verktyget inspekterar en Qt-applikation som är körbar för sina beroende på Qt-moduler och skapar en distributionskatalog med nödvändiga Qt-filer för att köra den inspekterade körbara. Ett möjligt skript kan se ut som:
set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe
set
kommandot kallas för att lägga till Qt's bin
katalog till PATH
miljövariabeln. windeployqt
kallas då:
- Sökvägen till distributionskatalogen ges ett valfritt argument som ges med parametern
--dir
(standard är sökvägen därwindeployqt
kallas). - Vägen till den körbara som ska inspekteras ges som sista argument.
Distributionskatalogen kan sedan samlas med den körbara.
NOTERA:
Om du använder förkompilerad Qt5.7.0 med vs2013 i Windows (är inte säker på om alla versioner har det här problemet) finns det en chans att du måste kopiera <QTDIR>\5.7\msvc2015\qml
till din bin-katalog med ditt program. Annars avslutas programmet automatiskt efter start.
Se även Qt-dokumentation .
Integrering med CMake
Det är möjligt att köra windeployqt
och macdeployqt
från CMake, men först måste sökvägen till körbara filer hittas:
# 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}")
För att windeployqt
ska hitta Qt-biblioteken på sin installerade plats måste mappen läggas till %PATH%
. Så här gör du för ett mål som heter myapp
efter att ha byggts:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E
env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE:myapp>"
COMMENT "Running windeployqt..."
)
För att köra macdeployqt
på ett paket, skulle det göras på detta sätt:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE_DIR:myapp>/../.."
-always-overwrite
COMMENT "Running macdeployqt..."
)
Distribuera på Mac
Qt erbjuder ett distributionsverktyg för Mac: Mac Deployment Tool.
Mac-distributionsverktyget finns i QTDIR/bin/macdeployqt
. Det är utformat för att automatisera processen för att skapa ett distribuerbart applikationspaket som innehåller Qt-bibliotek som privata ramverk.
Mac-distribueringsverktyget distribuerar också Qt-plugins enligt följande regler (såvida inte -no-plugins-alternativet används ):
- Plattformspluginet distribueras alltid.
- Felsökningsversioner av plugins distribueras inte.
- Designer plugins distribueras inte.
- Inställningarna för bildformat distribueras alltid.
- Plugin för utskriftsstöd distribueras alltid.
- SQL-drivrutinsplugins distribueras om applikationen använder Qt SQL-modulen.
- Skript plugins distribueras om applikationen använder Qt Script-modulen.
- SVG-ikonpluginet distribueras om applikationen använder Qt SVG-modulen.
- Tillgänglighetspluginet distribueras alltid.
Om du vill inkludera ett tredjepartsbibliotek i applikationspaketet, kopierar du biblioteket till paketet manuellt, efter att paketet har skapats.
För att använda macdeployqt
verktyg kan du öppna terminal och skriva:
$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app
Appfilen kommer nu att innehålla alla Qt-bibliotek som används som privata ramverk.
macdeployqt
stöder också följande alternativ
Alternativ | Beskrivning |
---|---|
-verbose = <0-3> | 0 = ingen utgång, 1 = fel / varning (standard), 2 = normal, 3 = felsökning |
-no-plugins | Hoppa över plugin-distributionen |
-dmg | Skapa en .dmg-diskbild |
-no-remsa | Kör inte "strip" på binärerna |
-Använd-debug-libs | Distribuera med felsökningsversioner av ramverk och plugins (antyder-no-strip) |
-executable = | Låt den givande körbara också använda de distribuerade ramarna |
-qmldir = | Distribuera import som används av .qml-filer på den angivna sökvägen |
Detaljerad information kan lämnas på Qt-dokumentation
Distribuerar på linux
Det finns ett distributionsverktyg för Linux på GitHub . Även om det inte är perfekt, kopplas det till från Qt-wiki. Det är konceptuellt baserat på Qt Mac Deployment Tool och fungerar på liknande sätt genom att tillhandahålla en AppImage .
Med tanke på att en skrivbordsfil ska förses med en AppImage, kan linuxdeployqt
använda det för att bestämma parametrarna för build.
linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop
Där skrivbordsfilen anger det körbara som ska köras (med EXEC=
), applikationens namn och en ikon.