Kłopot z kompilacją w Qt - kompilacja statyczna

Odpowiedz Nowy wątek
2016-02-19 01:39

Rejestracja: 6 lat temu

Ostatnio: 2 lata temu

0

Piszę sobie w Qt5 pod Windows i mam jeden irytujący problem.
Gdy skompiluję projekt i odpalę przez Qt Creator - wszystko działa. Teraz przypuśćmy, że chcę moją aplikację sobie skopiować i komuś wysłać. Biorę exeka, odpalam... brakuje bibliotek .dll. Aha, spoko - nie dolinkowuje samo bibliotek... powklejam wszystkie, których brakuje, postaram się nie zdenerwować. Powklejałem - wywala jakiś błąd... Nosz kuźwa. Nie da się jakimś prostym, ludzkim sposobem zrobić czegoś, żeby projekt kompilował się jak Pan Bóg przykazał, dołączając do exeka wszystkie wymaganie liby? Szlag mnie trafia po prostu... nie zamierzam korzystać z moich wspaniałych dzieł (sarkazm) tylko za pośrednictwem powłoki Qt Creatora, czy tam czegoś... ani wklejać do folderu masę DLLek typu libgcc_cośtam.dll, co w sumie i tak nie pomaga. Pomocy.

Pozostało 580 znaków

2016-02-19 02:30

Rejestracja: 5 lat temu

Ostatnio: 11 godzin temu

0

Z tego co słyszałem od znajomego, jest jakiś program na wina który sprawdza jakich dll brakuje i sam je dodaje, sporo upraszcza robotę. Musisz poszukać gdzieś w sieci, bo niestety nazwy już nie pamiętam.

No może nie sam dołącza biblioteki których brakuje ale za to sprawdza których nie ma w systemie i jakich funkcji brakuje ten program nosi nazwę Dependency Walker http://www.dependencywalker.com/ - lmfaort 2016-02-19 14:06

Pozostało 580 znaków

kq
2016-02-19 08:15
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 11 sekund temu

Lokalizacja: Szczecin

2

Potrzebujesz jeszcze platforms z pluginów i być może kilku innych plików zależnie od kompilatora.

Zobacz sobie paczkę jaką udostępniałem użytkownikom do Qt 5.1 czy coś takiego, kompilator mingw: http://misc.krzaq.cc/temp/Qt5.1.rar

Postaraj się ją zreprodukować używając dllek z Twojej wersji Qt - powinno działać.

Ewentualnie jest jeszcze http://doc.qt.io/qt-5/windows[...]l#the-windows-deployment-tool ale jak go ostatni raz używałem to nie znalazł wszystkich zależności.


Pozostało 580 znaków

2016-02-19 10:57

Rejestracja: 12 lat temu

Ostatnio: 8 godzin temu

0
  1. jeśli nie zapłaciłeś to licencja ci nie pozwala na dystrybuowanie aplikacji ze statyczną wersją bibliotek Qt, więc nie wolno ci tego zrobić! Musisz użyć dynamicznych bibliotek (możesz je przebudować by przyciąć funkcjonalność do swoich potrzeb).
  2. link do kq http://doc.qt.io/qt-5/windows-deployment.html powinien być teraz twoją biblią

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
ad. 1: jak najbardziej może dystrybuować statycznie linkowane Qt, tylko wtedy nawet licencja LGPL wymaga, aby dostarczał także kod źródłowy/pliki obiektowe. - kq 2016-02-19 11:00
dawno nie czytałem licencji Qt, ale z tego co pamiętam to zasada, o której piszesz, ma zastosowanie do zmian jakie wprowadzasz do kodu samego Qt, a nie do kodu twoje aplikacji, gdy linkujesz Qt statycznie (mam problemy z internetem i nie mogę odczytać obecnej licencji na http://www.qt.io/licensing/). - MarekR22 2016-02-19 11:24
Ale jak linkujesz statycznie to de facto zmieniasz bibliotekę (przynajmniej tak to jest rozumiane). GPL/LGPL nie zabraniają linkować statycznie, tylko wprowadzają dodatkowe wymagania. Z Twojego linka: In case of static linking of the library, the application itself may no longer be “work that uses the library” and thus become subject to LGPL. It is recommended to either link dynamically, or provide the application source code to the user under LGPL. - kq 2016-02-19 11:27

Pozostało 580 znaków

2016-02-19 12:57

Rejestracja: 6 lat temu

Ostatnio: 8 miesięcy temu

0

Dotyczy niestatycznego używania Qt:
Użyj programu Dependency Walker. Może rzeczywiście brakuje jeszcze jakiegoś liba. Dzięki temu sprawdzisz czego konkretnie brakuje.

http://www.dependencywalker.com/

edytowany 1x, ostatnio: grzesiek51114, 2016-02-19 12:57

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0