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är windeployqt 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.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow