Static build
-
Witam!
Mam problem z kompilacją Qt do wersji umożliwaiającej tworzenie aplikacji ze statycznie dołączonymi bibliotekami. Proszę o informację, co robię nie tak jak trzeba:
Postępuje zgodnie z "instrukcją":http://qt-project.org/doc/qt-5.1/qtdoc/install-win.html (a przynajmniej tak mi się wydaje):- Ściągnąłem i zainstalowałem gotowy pakiet Qt 5.1.1 for Windows 32-bit (MinGW 4.8, OpenGL, 666 MB) .
- Ściągnąłem pliki źródłowe "qt-everywhere-opensource-src-5.1.1.zip"
- Pliki źródłowe wypakowuję do C:\Qt\5.1.1_static
- Uruchamiam konsolę z opcjami:
@set PATH=c:\qt\5.1.1_static\qtbase\bin;c:\qt\5.1.1_static\qttools\bin;c:\qt\5.1.1_static\gnuwin32\bin;C:\Qt\Tools\mingw48_32\bin;%PATH%
set QMAKESPEC=win32-g++@
@configure -platform win32-g++ -static -release
(........)
c:\Qt\5.1.1_static>mingw32-make
cd qtbase/ && ( test -e Makefile || C:/Qt/5.1.1_static/qtbase/bin/qmake C:/Qt/5.
1.1_static/qtbase/qtbase.pro -o Makefile ) && mingw32-make -f Makefile
mingw32-make[1]: Entering directory 'c:/Qt/5.1.1_static/qtbase'
cd src/ && ( test -e Makefile || C:/Qt/5.1.1_static/qtbase/bin/qmake C:/Qt/5.1.1
_static/qtbase/src/src.pro -o Makefile ) && c:/Qt/Tools/mingw48_32/bin/mingw32-m
ake -f Makefile
/usr/bin/sh: c:/Qt/Tools/mingw48_32/bin/mingw32-make: Invalid argument
Makefile:41: recipe for target 'sub-src-make_first' failed
mingw32-make[1]: *** [sub-src-make_first] Error 126
mingw32-make[1]: Leaving directory 'c:/Qt/5.1.1_static/qtbase'
makefile:56: recipe for target 'module-qtbase-make_first' failed
mingw32-make: *** [module-qtbase-make_first] Error 2
c:\Qt\5.1.1_static>@
-
Zamiast czystego make, buduj target sub-src:
@
mingw32-make sub-src
@ -
Przejdź na Linuxa, tam jest prosto :P
Jeszcze nie budowałem Qt5 statycznie, może są jakieś dodatkowe problemy. Q Qt4 jest dość prosto, nawet na Windowsie. Masz wszystkie dependencies? Perl, Python, Ruby, ICU? Zerknij tu: "link":http://qt-project.org/wiki/Building-Qt-5-from-Git.
-
To zależy. Możesz pominąć ICU (dodaj -no-icu do configure), można też pominąć Pythona i Ruby (dodaj -skip webkit). Od Perla nie uciekniesz (póki co. W Qt 5.3 mają pozwolić na budowanie również bez Perla, w niektorych przypadkach).
-
Jeśli mówisz o bibliotekach Qt, to nie innego sposobu :) Jeśli o jakichś własnych czy innych, to Qt nie ma nic do tego.
Pamiętaj też, że linkowanie statyczne prawie w 100% przypadków łamie zasady licencji LGPL. Także albo wybierasz licencję GPL i publikujesz swój kod, albo kupujesz od Digii komercyjną licencję. Albo pytasz prawnika :P
Jak masz parę rdzeni w kompie to dorzuć jeszcze -j do make'a, będzie szybciej.