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órej windeployqt jest windeployqt ).
  • Ś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ę.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow