[TUTORIAL]Compilar la librería Qt estáticamente bajo Windows.

Iniciado por avesudra, 23 Julio 2012, 01:32 AM

0 Miembros y 3 Visitantes están viendo este tema.

avesudra

¿Cómo compilar la librería Qt estáticamente bajo Windows?
¡Buenas a todos! Pues como se ha preguntado sobre este tema he sacado un poco de tiempo y me he puesto a escribir este tutorial.Ya sé que hay información de sobra pero esta última está actualizada.
Descarga e instalación del compilador.
Bien , para compilar la librería Qt estáticamente bajo Windows debemos descargarnos un compilador(no es necesario si ya lo tenemos), en mi caso explicaré esto para hacerlo con MinGW , la librería en su versión 4.8.2 y configurarla en el IDE Qt Creator. Primero de todo nos descargamos la última versión del instalador de MinGW-get-inst de aquí http://sourceforge.net/projects/mingw/ y la instalamos siguiendo los siguientes pasos:


Paso 1:                                                                                                                    

Paso 2:    

Paso 3:                                                                                                                    

Paso 4:    

Paso 5:                                                                                                                    

Paso 6:
   

Paso 7:                                                                                                                      

Paso 8:  


Seguidamente cuando lo instalemos debemos configurar el path en las variables de entorno , en el caso de Windows 7 , en Inicio->Equipo y hacemos clic derecho sobre él y pinchamos en propiedades , seguidamente en Configuración avanzada del sistema y después en Variables de entorno y editamos la variable path agregando al final si no has cambiado el directorio de instalación esto C:\MinGW\bin;
Dejo unas imágenes para el que no lo encuentre:

Paso 1:          

Paso 2:      

Paso 3:                                                                                               Paso 4:    

Paso 5:

Compilando la librería Qt estáticamente.
Una vez hecho esto nos descargamos el código fuentede la librería Qt  desde http://qt.nokia.com/downloads y nos descargamos la última versión . Una vez descargada la descomprimimos en un lugar ACCESIBLE , es decir , que no contenga espacios ni letras raras o con tildes , el mejor sitio para evitar líos es C:\
Una vez hecho eso vamos  a Inicio -> Todos los programas -> Accesorios -> cmd.exe y clicamos en este último, en la ventana negra que nos sale debemos ir hasta el directorio en el que tenemos el código fuente descomprimido , dejo unas imágenes para que se os haga más sencillo:

El comando configure usado es este:  
configure.exe -platform win32-g++  -static -release -nomake example -nomake demos




Pulsamos enter y esperamos que termine. Una vez terminado ejecutamos este comando:
mingw32-make


Pulsamos enter y esperamos a que termine.(Esto en una máquina virtual se ha llevado dos horas y cinco minutos).Lo que deberíamos obtener cuando terminase es esto:


Instalando Qt Creator
Bien, ya tenemos la librería compilada estáticamente , el compilador y ¿que nos falta? el IDE ... nos descargamos Qt Creator para Windows desde aquí(está casi abajo del todo) http://qt.nokia.com/downloads y lo instalamos:
Paso 1:    

Paso 2:  

Paso 3:  

Paso 4:  

Paso 5:  

Paso 6:  

Configurando Qt Creator.
Ahora tenemos que configurar en el IDE Qt Creator las librerías estáticas y el compilador, lo hacemos así:

Paso 1:

Paso 2:  

Paso 3:  


Posibles problemas:
Compila pero hace falta libgcc.*.dll  y mingw.*.dll:

En ese caso buscar el archivo de configuración de qmake en mi caso que usio win32-g++ estaría en C:\qt-everywhere-opensource-src-4.8.2\mkspecs\win32-g++ y buscar el valor QMAKE_LFLAGS, y reescribir lo que hay por esto:

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


Y ya está , todo listo , ahora creen un proyecto , compílenlo con la librería estática en modo release y vean el tamaño del ejecutable , veran que es bastante más pesado de lo habitual .Por favor , si hay algo que no esté bien explicado o presente dudas pónganlo , aunque creo que el tutorial es lo bastante gráfico y sencillo como para que no sea entendible ¡Un saludo a todos!
PD : overxfl0w13 lo prometido es deuda ;)
Regístrate en

DickGumshoe

Como siempre, ¡muchísimas gracias por el manual! Seguro que nos servirá a muchos.

Saludos!

avesudra

Cita de: DickGumshoe en 23 Julio 2012, 01:48 AM
Como siempre, ¡muchísimas gracias por el manual! Seguro que nos servirá a muchos.

Saludos!
Gracias aunque todavía tengo que terminarlo porque es que la librería lleva una hora y media compilándose :xD Ya está listo , a ver si le mejoro la apariencia gráfica de las últimas capturas de pantalla.
¡Un saludo!
Regístrate en

overxfl0w13

#3
jaja BUENÍSIMO AVESUDRA! voy a hacerlo con las próximos proyectos, facilitará mucho las cosas :).

Chincheta a esto YA!  ;-)

EDIT: No sé porque pero ahora no me deja compilar, me lanza 31334 errores y el tiempo de compilación aumenta considerablemente xD
[/url]

avesudra

#4
Cita de: overxfl0w13 en 23 Julio 2012, 14:19 PM
jaja BUENÍSIMO AVESUDRA! voy a hacerlo con las próximos proyectos, facilitará mucho las cosas :).
EDIT: No sé porque pero ahora no me deja compilar, me lanza 31334 errores y el tiempo de compilación aumenta considerablemente xD
Gracias overxfl0w13 , es un coñazo compilar la librería ... De hecho me daba errores , pero al final decidí compilarla en una máquina virtual.
EDIT: Todo solucionado lo de tu librería  :)
Cita de: overxfl0w13 en 23 Julio 2012, 14:19 PM
Chincheta a esto YA!  ;-)
Sería todo un honor  :)
¡Un saludo!
Regístrate en

anonimo12121

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

avesudra

#6
Cita de: Xafi en 23 Julio 2012, 22:09 PM
Chinchetazo YAAA CURRARISIMO!!!!
¡Muchísimas gracias Xafi! En cuanto a lo de la chincheta como le he dicho a overxfl0w13 sería todo un honor  :)
Regístrate en

overxfl0w13

[/url]

avesudra

Cita de: overxfl0w13 en 24 Julio 2012, 00:43 AM
Ahora si que no necesita nada, perfecto :D
Vale , entonces ya no hay más problemas con el post :D
Regístrate en

anonimo12121

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746