Nastoletni
Programiści

Logo Nastoletnich Programistów

Qt – Deployment aplikacji na Windowsa [dynamicznie]

Czego unikać?

Bardzo popularnym, często powielanym błędem podczas deploymentu na Windowsa jest czekanie na błędy i wrzucanie bibliotek „na pałę” do folderu z binarką aplikacji, jest to pracochłonne, i działa tylko w niektórych przypadkach:

  • Aplikacja konsolowa Qt
  • Prosta aplikacja Qt Widgets (nie mylić z Qt Quick)

Trochę lepszym sposobem jest używanie dependency walker który, skanuje plik exe w poszukiwaniu zależności, i wyświetla brakujące biblioteki.

Prawidłowy i szybki deployment

Zacznę od aplikacji nieużywających komponentów Qt Quick , do tego celu użyjemy narzędzia windeployqt , znajduje się ono w katalogu Qt, podkatalogu wersji, podkatalogu mingw , i wreszcie w folderze bin w moim przypadku jest to C:/Qt/5.9/mingw53_32/bin .

Najczęściej popełnianym błędem, który i ja popełniłem jest użycie złej wersji narzędzia windeployqt , dlatego wcześniej warto się upewnić jakiej wersji Qt użyliśmy do budowy aplikacji.

Teraz czas uruchomić cmd i wywołać windeployqt wraz z odpowiednimi argumentami, w przypadku prostej aplikacji będzie to

Narzędzie automatycznie wykryje potrzebne biblioteki, znajdzie je i dorzuci do katalogu z naszym plikiem exe.

W przypadku aplikacji Qt Quick, należy dodatkowo załączyć adres projektu, wynika to z tego, że aplikacja wymaga dynamicznie zaczepionych plików qml od komponentów które zostały użyte, w tym celu używamy windeployqt zgodnie ze składnią:

Tu warto wspomnieć, że częstym błędem jest mylenie folderu projektu, z folderem qml który znajduje się obok folderu bin .

Przykładowe użycie:

Po więcej argumentów w razie potrzeby należy wywołać:

Polecam też zajrzeć na http://doc.qt.io/qt-5/windows-deployment.html .

Maciej Rosiak

Mam 19 lat, od paru lat interesuje się programowaniem i informatyką, zaczynałem od Unity w którym tworzyłem gry przez 2 lata, teraz od 4 lat pisze aplikacje desktopowe / mobilne w C++, Qt, V-play

Zobacz wszystkie posty tego autora →

Komentarze