Qt
Wdrażanie aplikacji Qt
Szukaj…
Wdrażanie w systemie Windows
Qt zapewnia narzędzie do wdrażania dla systemu Windows: windeployqt
. Narzędzie sprawdza plik wykonywalny aplikacji Qt pod kątem zależności od modułów Qt i tworzy katalog wdrażania z niezbędnymi plikami Qt do uruchomienia sprawdzanego pliku wykonywalnego. Możliwy skrypt może wyglądać następująco:
set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe
set
polecenie set
aby dodać katalog bin
Qt do zmiennej środowiskowej PATH
. windeployqt
jest wtedy nazywany:
- Ścieżka do katalogu wdrażania ma opcjonalny argument podany z parametrem
--dir
(domyślnie jest to ścieżka, do którejwindeployqt
jestwindeployqt
). - Ścieżka do pliku wykonywalnego do sprawdzenia jest podana jako ostatni argument.
Katalog wdrażania można następnie połączyć z plikiem wykonywalnym.
UWAGA:
Jeśli używasz wstępnie skompilowanej wersji Qt5.7.0 z vs2013 w systemie Windows (nie jestem pewien, czy wszystkie wersje mają ten problem) , istnieje szansa, że musisz ręcznie skopiować <QTDIR>\5.7\msvc2015\qml
do katalogu bin twój program. W przeciwnym razie program automatycznie zakończy pracę po uruchomieniu.
Zobacz także dokumentację Qt .
Integracja z CMake
Możliwe jest uruchomienie windeployqt
i macdeployqt
z CMake, ale najpierw należy znaleźć ścieżkę do plików wykonywalnych:
# 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}")
Aby windeployqt
znalazł biblioteki Qt w zainstalowanej lokalizacji, folder należy dodać do %PATH%
. Aby to zrobić dla obiektu docelowego o nazwie myapp
po zbudowaniu:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E
env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE:myapp>"
COMMENT "Running windeployqt..."
)
Aby uruchomić macdeployqt
w pakiecie, należy to zrobić w następujący sposób:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE_DIR:myapp>/../.."
-always-overwrite
COMMENT "Running macdeployqt..."
)
Wdrażanie na komputerze Mac
Qt oferuje narzędzie do wdrażania dla komputerów Mac: Narzędzie do wdrażania komputerów Mac.
Narzędzie do wdrażania komputerów Mac można znaleźć w QTDIR/bin/macdeployqt
. Został zaprojektowany w celu zautomatyzowania procesu tworzenia pakietu aplikacji, który zawiera biblioteki Qt jako ramy prywatne.
Narzędzie do wdrażania systemu mac wdraża również wtyczki Qt zgodnie z następującymi regułami (chyba że użyto opcji -no-plugins ):
- Wtyczka platformy jest zawsze wdrażana.
- Wersje debugowania wtyczek nie są wdrażane.
- Wtyczki projektanta nie zostały wdrożone.
- Wtyczki formatu obrazu są zawsze wdrażane.
- Wtyczka obsługi drukowania jest zawsze wdrażana.
- Wtyczki sterownika SQL są wdrażane, jeśli aplikacja korzysta z modułu Qt SQL.
- Wtyczki skryptu są wdrażane, jeśli aplikacja korzysta z modułu Qt Script.
- Wtyczka ikona SVG jest wdrażana, jeśli aplikacja korzysta z modułu Qt SVG.
- Wtyczka ułatwień dostępu jest zawsze wdrażana.
Aby dołączyć bibliotekę innej firmy do pakietu aplikacji, skopiuj bibliotekę do pakietu ręcznie, po utworzeniu pakietu.
Aby użyć narzędzia macdeployqt
, możesz otworzyć terminal i wpisać:
$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app
Plik aplikacji będzie teraz zawierał wszystkie biblioteki Qt używane jako ramy prywatne.
macdeployqt
obsługuje również następujące opcje
Opcja | Opis |
---|---|
-verbose = <0-3> | 0 = brak wyjścia, 1 = błąd / ostrzeżenie (domyślnie), 2 = normalny, 3 = debugowanie |
-nie-wtyczki | Pomiń wdrażanie wtyczki |
-dmg | Utwórz obraz dysku .dmg |
-nie pasków | Nie uruchamiaj „strip” na plikach binarnych |
-use-debug-libs | Wdróż za pomocą debugujących wersji frameworków i wtyczek (implikuje -no-strip) |
-executable = | Niech dany plik wykonywalny również korzysta z wdrożonych ram |
-qmldir = | Wdróż importy używane przez pliki .qml w podanej ścieżce |
Szczegółowe informacje można znaleźć w dokumentacji Qt
Wdrażanie w systemie Linux
Na GitHub znajduje się narzędzie do wdrażania systemu Linux. Chociaż nie jest doskonały, jest powiązany z wiki Qt. Opiera się koncepcyjnie na narzędziu Qt Mac Deployment Tool i działa podobnie, zapewniając AppImage .
Ponieważ plik pulpitu powinien być wyposażony w AppImage, linuxdeployqt
może go użyć do określenia parametrów kompilacji.
linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop
Gdy plik pulpitu określa plik wykonywalny do uruchomienia (z EXEC=
), nazwę aplikacji i ikonę.