[ notebookFun @ 20.12.2020. 09:35 ] @
Da li je moguce i na koji nacin upakovati u EXE fajl QT5core.dll?
Da li bi neko mogao da napise jednostavan primjer u QT creator-u?

Pisao sam neku aplikaciju i nakon kompajliranja moram da imam te DLL fajlove...Da li je moguce nekako upakovati fajlove u kompajlirani EXE?
Citao sam na netu da treba da ubacim kao Static Library ali nikako ne uspjevam.

[ netomc @ 20.12.2020. 23:46 ] @
Nisam koristio QT do sada, ali sam generalno programirao u C++ pa ti mozda moze pomoci. Koliko sam procitao na QT sajtu, ako hoces staticki da linkujes moras da imas licencu za QT; ili da open sourceujes svoju aplikaciju.
Generalno govoreci, ako nemas opciju da staticki linkujes biblioteke, moras da ih shippujes sa svojom aplikacijom kao dinamicke biblioteke.

https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW
[ Branimir Maksimovic @ 20.12.2020. 23:51 ] @
Citat:
notebookFun:
Da li je moguce i na koji nacin upakovati u EXE fajl QT5core.dll?
Da li bi neko mogao da napise jednostavan primjer u QT creator-u?

Pisao sam neku aplikaciju i nakon kompajliranja moram da imam te DLL fajlove...Da li je moguce nekako upakovati fajlove u kompajlirani EXE?
Citao sam na netu da treba da ubacim kao Static Library ali nikako ne uspjevam.



Qt moras da izbuildujes kao staticke libove. Mislim da to nemas i zato ti je to neocigledan problem.
[ Nedeljko @ 22.12.2020. 17:32 ] @
netomc

Lecenca se mora imati za svaki sw koji se koristi, bez obzira da li se zove Qt ili drugačije. Qt se licencira na dva načina: open source licencom (koja se ne plaća) ili komercijalnom liocencom (koja se plaća), pri čemu uslovi korišćenja nisu isti.

Ako koristiš open source licencu, tj. Qt koristiš besplatno, a hoćeš da isporučuješ tvoj exe kao closed source, onda moraš da linkuješ ili dinamički (sa tim dll-ovima, koje isporučuješ) ili da linkuješ statički uz isporuku .obj ili .o fajlova tvog programa, osim .exe fajla.

U svakom slučaju, Qt je kompajliran za dinamičko linkovanje (preko dll-ova), tako da ako želiš statičko (ugradnjom u .exe), moaćeš da uradiš build Qt-a iz izvornog koda.
[ Rapaic Rajko @ 23.12.2020. 10:09 ] @
Nisam se toliko bavio ovom temom u C++-u, ali...

Zar nije moguce ubaciti trazeni dll kao resource u exe za isporuku. Pa onda, prilikom pokretanja exe-a, raspakovati taj resource u fajl/dll, i zatim isti dinamicki ulinkovati u app? A prilikom gasenja exe-a, obrisati fajl/dll do sledeceg puta?

Ili je mozda autor teme hteo da sve radi bas static (iz jednog fajla)..?
[ Branimir Maksimovic @ 23.12.2020. 12:08 ] @
Mislim da je to gimnastika koja je izvodljiva, ali mislim da nema qtcreator alat da se tako nesto izvede, pa bi morao to da isprogramira, tj ako je qt aplikacija ne moze se ni pokrenuti ako vec nije ulinkovan qt.
Dakle morao bi da pravi wrapper, a to je vec hussle. Mnogo mu je jednostavnije da iskompajlira qt i onda ce moci staticki linkovati.
[ Nedeljko @ 24.12.2020. 13:32 ] @
Ta gimnastika je nepotrebna.

Dakle, isporuči celinu, svoj .exe sa Qt-ovim .dll-ovima. Instaler instalira sve u isti folder. U instaler su zapakovani. Međutim, instaler predstavlja arhivu, koja se može raspakovati, tako da trpanjem svega u jedan instaler ne dobijaš obaveze otvaranja svog .exe-a.

Prilikom isporuke moraš da uradiš sledeće:

1. Da napišeš da su ti .dll-ovi Qt-ovi (kopirajt podaci) i pod njihovom licencom (tačno koja je) sa punim tekstom licence. LGPLv3 se naslanja na GPLv3, tako da u tom slučaju oba teksta moraju biti isporučena.

2. Da u svom programu ne koristiš Qt-ove module koji su dostupni samo pod komercijalnom licencom ili samo pod GPL licencom.

3. Da Qt linkuješ dnamički sa svojim programom (dll-ovi, a ne statički da Qt uđe u exe).

4. Da isporučiš sorseve Qt-a ili da obezbediš način da korisnik dođe do njih, pri čemu taj način mora da zadovolji uslove iz Qt-ove licence.

5. Ako si menjao Qt, onda se to odnosi na sorseve Qt-a koji uključuju tvoje izmene.

6. Da u svojoj licenci ne zabranjuješ korisniku da koristi tvoj program sa izmenjenim verzijama Qt-a.

7. Da u svom programu nigde ne proveravaš da li se koristi sa dll-ovima Qt-a, koji su istovetni isporučenim.

8. Da u svojoj licenci ne zabranjuješ korisniku da vrši reverzni inženjering tvog programa u svrhu njegovog korišćenja sa izmenjenim verzijama Qt-a. Ne moraš isporučivati sorseve svog exe-a.