Qt Deployment, czyli tworzenie wersji release ze wszystkimi plikami *.dll

QT Creator domyślnie tworzy aplikacje z linkowaniem dynamicznym (shared). Jeśli korzystamy z darmowej, otwartoźródłowej wersji QT to jest to zgodnie z licencją jedyna opcja. W związku z tym razem z publikowanym plikiem *.exe projektu trzeba dostarczyć skompilowane pliki biblioteki od których jest on zależny. Pomoże nam w tym windeployqt.exe (Qt Deployment Tool) znajdujący się w katalogu Qt\Qt5.8.0\5.8\msvc2015_64\bin. Odpalamy ten plik w cmd.exe, jako argument podając ścieżkę do pliku wykonywalnego projektu, np. C:\QT Projects\nonograms\app\release\project1.exe. Po tej operacji w folderze release znajdują się wszystkie pliki potrzebne do działania aplikacji, a nawet więcej. Aby usunąć niepotrzebne pliki wystarczy odpalić aplikację project1.exe i w czasie jej działania spróbować usunąć pozostałe pliki z folderu. Niepotrzebne pliki powinny zostać usunięte a wymagane przez aplikację zostaną pominięte. Sposób ten opisany jest tutaj: Deploy an Application on Windows

Więcej na stronie QT: Qt for Windows – Deployment

3 myśli nt. „Qt Deployment, czyli tworzenie wersji release ze wszystkimi plikami *.dll

  1. Bartosz

    Z tego, co mi się obiło o uszy, to można jeszcze za darmo linkować statycznie o ile program będzie na licencji GPL lub LGPL, ale mogę się mylić

    Odpowiedz
    1. ololukiXP Autor wpisu

      Chyba masz rację. Można linkować statycznie, ale nasz kod musi być wtedy na licencji GPL lub LGPL i trzeba bezwzględnie udostępnić kod źródłowy. Przy linkowaniu dynamicznym można nie udostępniać kodu źródłowego naszej aplikacji, jednak trzeba dostarczyć treść licencji oraz prawdopodobnie kod źródłowy samego Qt oraz ewentualnych zmian, jakie wprowadziliśmy do bibliotek Qt (np. patchy). Generalnie z prawnego punktu widzenia bezpieczniej jest linkować dynamicznie.

      Odpowiedz

Dodaj komentarz

Twój adres email nie zostanie opublikowany.