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
Komentarze