Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[QT] linkowanie statyczne

Ostatnio zmodyfikowano 2010-11-28 22:40
Autor Wiadomość
cyklopek11
Temat założony przez niniejszego użytkownika
[QT] linkowanie statyczne
» 2010-11-28 15:26:28
Witam!
Czy ktoś może eksperymentował z opisem na : http://www.formortals.com/build-qt-static-small-microsoft-intel-gcc-compiler/   i mu działa???
Ja już dwa razy tak zagrzebałem w qt creatorze że musiałem robić reinstalkę...
P-24606
DejaVu
» 2010-11-28 20:12:46
O ile się nie mylę licencja nie zezwala na linkowanie statyczne (chyba, że wykupiłeś licencję komercyjną w co wątpię).
P-24629
Elaine
» 2010-11-28 20:46:42
Zezwala, pod warunkiem, że program sam będzie na GPLu lub LGPLu.
P-24632
cyklopek11
Temat założony przez niniejszego użytkownika
» 2010-11-28 22:03:56


W odpowiedzi na DejaVu:
Jest dokładnie tak jak pisze Iname. Co prawda w swoich prezentacjach Nokia "doradza" aby przy potrzebie linkowania statycznego nabyć komercyjną licencję aby móc "niepokazywać" kodu swojego programu , sprzedawać itd.

ps
Mam już prawie gotowy prosty przepis na statyczne linkowanie testuje go 2 raz i może przed północą dzisiaj uda mi się go tu zamieścić…
P-24636
cyklopek11
Temat założony przez niniejszego użytkownika
» 2010-11-28 22:40:43
Po wielu godzinach prób i błędów udało mi się dojść do następującego przepisu na zlinkowanie wszystkich potrzebnych bibliotek QT w jeden exec naszego programu. Przepis dotyczy systemu windows ( u mnie na xp) przy zainstalowaniu całego pakietu Qt Creatora w wersji 2010.05. (Qt SDK for Windows* (322 MB) ). Aplikacje w postaci jednego execa po statycznym zlinkowaniu zostały przetestowane na czystym windows xp ( wszystko testowałem przy pomocy virtual pc ) i  nie potrzebują żadnych bibliotek. Testowałem moje własne projekty jak i kilka w katalogu examples.


Przepis na to aby przerobić naszego Qt creatora aby tworzył naszą aplikację jako jeden plik exe (linkowanie statyczne). Na podstawie dostępnych źródeł internetowych i własnych testów:



1.) W katalogu z QT ( standardowo c:\Qt\2010.05\qt\mkspecs\win32-g++ ) otwórz notatnikiem plik qmake.conf

2.) Odszukaj następującą linijkę:
QMAKE_LFLAGS        = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

i zaraz po znaku "=" wtrąć spacje oraz: -static  ( na końcu też daj spację )

linijka po zmodyfikowaniu ma wyglądać  tak:

QMAKE_LFLAGS        = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

3.) Zapisz zmiany

4.) Kliknij start --> programy --> Qt SDK by Nokia v2010.05 (open source) --> Qt Command Prompt

5.) W konsolę wpisz:

configure -static -release -no-exceptions
wciśnij enter

Otrzymujemy zapytanie:

Which edition of Qt do you want to use?
Type 'c' if you want to use the Commercial Edition.
Type 'o' if you want to use the Open Source Edition.

ja wpisałem o ( i enter)


otrzymujemy kolejną informację

Type '3' to view the GNU General Public Licence version 3 <GPLv3>.
Type 'L' to view the Lesser GNU General Public Licence version 2.1 <LGPLv2.1>.
Type 'y' to accept this licence offer.
Type 'n' to decline this licence offer.

Do you accept the terms of the licence?

Naciskamy 3 i czytamy licencję
Naciskamy L i czytamy licencję


Jeśli akceptujemy warunki wciskamy y (i enter)

 i długo czekamy
........................................
6.) Jak się skończy ( bez błędów) wpisz jeszcze w tą samą konsolę:

mingw32-make sub-src
wciśnij enter
znowu długie czekanie
..........................................................
7.) To wszystko

Teraz po napisaniu kodu swojej aplikacji w Qt Creator ustawiasz opcję release i wciskasz przycisk buduj.
W odpowiednim katalogu z projektem w katalogu "release" znajdziesz plik exe który nie wymaga żadnych bibliotek ( waży coś ponad 8MB )

Gdy chcesz coś więcej eksperymentować polecam literaturę:

[1] http://blog.lugru.com/2009/03/qt-static-mingwm10dll-and-deployment-under-windows-environment/

[2] http://www.qtcentre.org/wiki/index.php?title=Building_static_applications

[3]http://www.formortals.com/build-qt-static-small-microsoft-intel-gcc-compiler/

[4] http://blog.bakojohn.com/?p=205&lang=en

[5] http://www.infernodevelopment.com/installing-qt-443-windows-various-methods

PS.
1.)Jeśli pomimo zlinkowania powyższym sposobem exec nadal woła o jakieś biblioteki lub w trakcie budowania projekt nie chce się statycznie zlinkować zamieść to w tym temacie z dokładnym opisem i  błędami jakie wyrzuca




P-24639
« 1 »
  Strona 1 z 1