PDA

View Full Version : Qt4.7.0\4.7.2 WINDOWS! Qualcuno mi aiuta a compilarle in modo STATICO ?


Perseverance
18-03-2011, 11:29
Ho bisogno di compilare in modo statico queste librerie altrimenti quando faccio i programmi col QtCreator e li voglio distribuire agli amici, loro non possono lanciarli xkè non hanno le dipendenze.

Ho seguito questa guida:
http://developer.qt.nokia.com/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc

ma alla fine mi dà errore alla compilazione:
mingw32-make[2]: *** [tmp/obj/release_static/qglobal.o] Error 1
mingw32-make[2]: Leaving directory `C:/QtSDK2010/qt_static/src/tools/bootstrap'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `C:/QtSDK2010/qt_static/src/tools/bootstrap'
mingw32-make: *** [sub-tools-bootstrap-sub_src_target_ordered] Error 2

Prima di essa ne avevo seguite altre e per adesso non ho fatto altro che sbatterere la testa contro gli errori in compilazione :muro:

Se qualcuno ce le ha gia belle compilate in statico allora me le passi, x me è uguale, sono al limite della disperazione! :cry: Qualcuno mi aiuti

tomminno
18-03-2011, 14:21
Con questa configurazione si compila Qt con Visual Studio senza webkit:

configure.exe -opensource -static -debug -qt-sql-odbc -qt-sql-sqlite -qt-style-windowsvista -qt-style-windowsxp -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qt-gif -nomake tools -nomake docs -nomake translations -nomake examples -nomake demos -no-scripttools -no-dbus -no-phonon -no-phonon-backend -no-style-motif -no-style-cde -no-style-plastique -no-qt3support -no-webkit -no-s60 -vcproj -platform win32-msvc2010 -openssl-linked -I "C:\OpenSSL\include" -L "C:\OpenSSL\lib\VC\static" -l libeay32MT -l ssleay32MT OPENSSL_LIBS="ssleay32MT.lib libeay32MT.lib user32.lib gdi32.lib"

Ovviamente se non ti serve la parte relativa a SSL puoi togliere tutto quello che viene dopo win32-msvc2010.

Perseverance
18-03-2011, 18:27
Invece ci sono quasi riuscito con la guida precedente, xò evidentemente alcuni riferimenti erano sempre alla cartella C:\QtSDK2010.5\Qt

Quando ai primi passi dice di copiare Qt come Qt_static, io invece ho rinominato l'originale e la copia l'ho chiamata proprio Qt. In questo modo seguendo tutti i passi è riuscito a compilare xò ad un certo punto (dopo circa 3 ore) si è fermato col seguente errore:

mingw32-make[1]: Entering directory `C:/QtSDK2010/qt/src/3rdparty/webkit/JavaScriptCore'
c:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\bin\qmake.exe -after CONFIG-=precompile_header -o Makefile JavaScriptCore.pro
process_begin: CreateProcess(NULL, c:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\bin\qmake.exe -after CONFIG-=precompile_header -o Makefile JavaScriptCore.pro, ...) failed.

make (e=3): Impossibile trovare il percorso specificato.
mingw32-make[1]: *** [Makefile] Error 3
mingw32-make[1]: Leaving directory `C:/QtSDK2010/qt/src/3rdparty/webkit/JavaScriptCore'
mingw32-make: *** [sub-javascriptcore-make_default-ordered] Error 2

C:\QtSDK2010\qt>
Il webkit l'ho modificato come diceva la guida, xò io non ho nessuna cartella C:\qt-greenhouse Che roba è?

Probabilmente i sorgenti sono buggati in questo punto! Mi aiuti?...ci sono quasi riuscito mi manca solo questo passo.

Cmq ho provato a fare una semplice applicazione (una calcolatrice) e nonostante la compilazione non sia terminata, l'eseguibile che tira fuori (sia in versione gigantesca DEBUG che normale RELEASE) è perfettamente funzionante da solo.

Xò ho paura che non avendo terminato correttamente la compilazione poi un bel giorno mi fà casino con programmi più complessi....

P.S: prometto che se ci riesco sia con le 4.7.0 sia con le 4.7.2 le zippo e le uppo su megaupload così altri poveri cristi come me ce le avranno già pronte da scaricare ed estrarre!

tomminno
18-03-2011, 23:30
Il tuo problema è dovuto alla compilazione del JavascriptCore, ovviamente le librerie che è riuscito a compilare prima dell'errore sono funzionanti.
Non saprei dirti il motivo dell'errore, non uso mingw su windows.
Se non ti serve ti conviene configurare Qt con il parametro -no-scripttools.

Certo non capisco come in C++ si possa consigliare l'opzione -no-exceptions