Qt 5.7 statyczne linkowanie.

0

Co zrobić aby dało się użyć statycznego linkowania? Próbowałem już dodać do pliku projektu linijki

CONFIG += static
CONFIG += staticlib

ale to nic nie dało. W dodatku pełno tematów w internecie z tym związanych ma ładnych parę lat i dotyczą one starych wersji tych bibliotek.

0

O ile dobrze pamiętam musisz skompilować Qt pod statyczne linkowanie. Jeśli tak jest to z własnych doświadczeń: odpuść sobie. Jeśli boli Cię szukanie odpowiednich .dllek do załączenia na Windowsie, skorzystaj z windeployqt

0

@kq: Nie boli mnie szukanie plików dll, ale jeden ma ponad 100 mb. A rozpowszechnianie małej aplikacji z czymś takim średnio mi się widzi.
BTW. Żeby nie złamać darmowej licencji i rozpowszechniać zamknięty kod z linkowaniem statycznym, to muszę udostępnić pliki obiektowe?

0

Tak, musisz (albo źródła). Rozpowszechniasz skompilowane w trybie debug? Mój .rar z wszystkimi dll wymaganymi dla mojego softu zajmuje 18MB, 60MB po rozpakowaniu.

BTW: wiesz, że po skompilowaniu statycznym Twoja binarka będzie ważyła podobnie? Czyli jakieś 30-300MB.

0

@kq: 60 MB po rozpakowaniu, moja by zajęła ponad 100 MB mimo tego, że to mały projekt. Jaki pliki DLL załączyłeś? Bo mi krzyczało o plik Qt5Cored.dll zajmujący około 117 MB. I rozumiem, że lepiej użyć po prostu tego likowania dynamicznego?

1

Qt5Cored.dll

/d\.dll$/ = wersja debug.

Kompiluj w release jeśli chcesz to dystrybuować

0

@kq: Zrobiłem to i mam mały problem z biblioteką:
https://postimg.org/image/7su6yompz/ Sprawdzałem 2 wersje, jedna zajmująca 4 MB, druga 5 MB i to samo się wyświetla.

1

Skopiowałeś zapewne qt5core.dll, które znalazłeś za pomocą windows search i które pochodzi z katalogu Qt Creatora. Qt\5.8\kompilator\bin ⟵ stąd bierz. Albo jeszcze lepiej użyj wymienionego wyżej windeployqt.

0

@kq: Skopiowałem to z katalogu Qt\Qt5.7.0\5.7\mingw53_32\bin i efekt taki sam.
EDIT: Skopiowałem swój program to folderu z kompilatorem i działa. Jakąś złą inną bibliotekę skopiowałem.

0

@kq: Dobra, skopiowałem wszystkie DLLeki kompilując wcześniej w trybie release i działa. Rozmiar programu z plikami DLL to jakieś 17 MB. Rozumiem, że w takiej formie z zewnętrznymi DLLkami mogę zamknąć kod, sprzedawać i nie udostępniać kodu i plików obiektowych?

1

Wedle mojej wiedzy i zrozumienia LGPL - tak.

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