Qt - wielkość programu

0

Napisałem prosty program w Qt przy użyciu QWebView.
Zależy mi, żeby w miare mało ważył.
Niestety dllki, które muszę dołączyć do folderu programu ważą łącznie ~20MB (więcej niż instalka firefoxa :P ).
Czy jest szansa coś z tym zrobić?
Może statyczne zlinkowanie bibliotek by pomogło?

0

Skompiluj sam statyczne biblioteki (będziesz mógł wykluczyć rzeczy, których nie używasz), zlinkuj je ze swoim programem i potraktuj upx. Do ~2mb da się zejść z core i UI.

0

Dzięki za odp.
Czyli jeżeli kompiluje program statycznie, to w .exe nie jest wkompilowywana np. cała biblioteka qtcore4.dll, tylko użyte funkcje?
Innymi słowy plik exe zlinkowany statycznie jest mniejszy, niz exe zlinkowany dynamicznie + potrzebne dllki?

0

Użyj jeszcze selektywnego linkowania - w VS2010 jest zdaje się do tego opcja, nie wiem czego używasz.
Wtedy linker wybiera funkcje których używasz i tylko je dołącza.

0

Dzieki za pomoc :]

0

tak btw do linkowania statycznego musisz mieć wykupioną licencję, oczywiście ją posiadasz ;)

0
uuu napisał(a)

tak btw do linkowania statycznego musisz mieć wykupioną licencję, oczywiście ją posiadasz ;)

Bzdura. QT jest wydane na LGPL, GPL i licencji komercyjnej. W przypadku linkowania statycznego, QT będzie podlegało licencji GPL. Aplikacja też będzie musiała zostać na niej wydana, ale to nie znaczy, że trzeba cokolwiek kupić.

1

złe podejście. Najlepiej przebudować qt z odpowiednimi opcjami (pozbywając się z dll-ek tony zasobów).
Tu jest dokumentacja jak można to zrobić.

PS> Jest to szczególnie ważne jeśli chodzi o licencje, jeśli linkujesz statycznie Qt masz większe restrykcje jeśli chodzi o licencje na twój kod.

0

Btw licencji to nie jest takie proste.

LGPL mówi raczej o linkowaniu dynamicznym, także tak jak napisal Rev aplikacja też będzie musiała być na jakiejś otwartej licencji (moim zdaniem nawet GPL, bo skoro LGPL nie może być statycznie, to wtedy do QT zastosowanie będzie miała już tylko GPL - w konsekwencji linkowania statycznego program też będzie musiał być na niej). Nie wiadomo, czy autor wątku m a ochotę na takie rozwiązanie - czy to LGPL czy GPL jego kod musi być publicznie dostępny.

W Internecie można wyczytać, że niektórzy troszkę inaczej interpretują LGPL i podczas statycznego linkowania można program zamknąć, ale należy wtedy rozdawać pliki obiektowe programu, po to, aby każdy mógł sobie złożyć z nich binarkę. (Bo LGPL mówi o tym, że ma istnieć możliwość wymiany biblioteki na np. nowszą wersję czy zmodyfikowaną przez nas) To rozwiązanie też wiąże się z pewnymi niedogodnościami.

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