¿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:
(http://img708.imageshack.us/img708/1192/paso1e.png)
Paso 2:
(http://img341.imageshack.us/img341/493/paso2fd.png)
Paso 3:
(http://img834.imageshack.us/img834/2715/paso3o.png)
Paso 4:
(http://img707.imageshack.us/img707/2305/paso4v.png)
Paso 5:
(http://img835.imageshack.us/img835/951/paso5o.png)
Paso 6:
(http://img21.imageshack.us/img21/9831/paso6g.png)
Paso 7:
(http://img407.imageshack.us/img407/4329/paso7y.png)
Paso 8:
(http://img834.imageshack.us/img834/1676/paso8.png)
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:
(http://img856.imageshack.us/img856/2825/paso11.png)
Paso 2:
(http://img267.imageshack.us/img267/8995/paso12.png)
Paso 3: Paso 4:
(http://img692.imageshack.us/img692/5374/paso13h.png)(http://img171.imageshack.us/img171/7812/paso14.png)
Paso 5:
(http://img69.imageshack.us/img69/1317/paso15.png)
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
(http://img151.imageshack.us/img151/2497/paso21.png)
Pulsamos enter y esperamos que termine. Una vez terminado ejecutamos este comando:
mingw32-make
(http://img696.imageshack.us/img696/272/paso22.png)
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:
(http://img171.imageshack.us/img171/4053/paso23.png)
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:
(http://img256.imageshack.us/img256/2795/paso31.png)
Paso 2:
(http://img16.imageshack.us/img16/985/paso32.png)
Paso 3:
(http://img39.imageshack.us/img39/3148/paso33.png)
Paso 4:
(http://img213.imageshack.us/img213/2524/paso34.png)
Paso 5:
(http://img215.imageshack.us/img215/5778/paso35.png)
Paso 6:
(http://img338.imageshack.us/img338/7844/paso36.png)
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:
(http://img88.imageshack.us/img88/135/paso41.png)
Paso 2:
(http://img13.imageshack.us/img13/9536/paso42.png)
Paso 3:
(http://img23.imageshack.us/img23/8167/paso43.png)
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 ;)
Como siempre, ¡muchísimas gracias por el manual! Seguro que nos servirá a muchos.
Saludos!
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!
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
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!
Chinchetazo YAAA CURRARISIMO!!!!
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 :)
Ahora si que no necesita nada, perfecto :D
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
Subiendo!
Hola, podrias hacer un tutorial de como hacer la configuración en Visual Studio 2010, porfavor
Cita de: chinoman1993 en 10 Octubre 2012, 22:07 PM
Hola, podrias hacer un tutorial de como hacer la configuración en Visual Studio 2010, porfavor
No sé como hacerlo , de todas maneras aunque supiese no dispongo de tiempo para dedicarle , busca en internet(en inglés sobre todo)
:
http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/
De todas maneras , te lo digo ya por haberlo visto , el IDE Qt Creator es más que impresionante.
Xafi , miles de gracias , ¡eres grande!
por cierto, vaya moustro el que tienes ::)
Hice todo lo que dijiste y funciono a la perfección, el unico fallo que me da es que al compilar me tira el error de que me faltan librerias QXmpp.
Uno de los errores es este: :(
CitarQXmppConfiguration.h: No such file or directory
c:\Qt\4.8.3\include\qxmpp\QXmppClient.h
Saludos y Gracias.
CitarMe apunto a la idea:
Chinchetazo YAAAAAAAAAAAAAAAAAAAAAAAA !!!!!!!!!!!!!!!!!
Cita de: RHL en 10 Octubre 2012, 23:37 PM
por cierto, vaya moustro el que tienes ::)
Sí la verdad es que bastante bueno :)
Cita de: MeCraniDOS en 11 Noviembre 2012, 14:14 PM
Hice todo lo que dijiste y funciono a la perfección, el unico fallo que me da es que al compilar me tira el error de que me faltan librerias QXmpp.
Uno de los errores es este: :(
Saludos y Gracias.
Ese error que dices te lo da al compilar un proyecto , ¿o al compilar las librerías?
Cita de: leosansan en 12 Noviembre 2012, 21:22 PM
¡Muchísimas Gracias!
Nono, el error me sale cuando intento compilar el proyecto, me dice que me faltan todas las librerías QXmpp, del resto de código no me sale ningún error, y bueno, otro de los fallos que me da, es en este paso:
CitarPulsamos enter y esperamos que termine. Una vez terminado ejecutamos este comando:
mingw32-make
Me sale un error ahí, (uso otra versión que la tuya, la instalación es en interfaz gráfica, y luego la actualización si que me sale igual que a ti, pero cuando llega al punto del mingw32-make, me tira error) pero no se a que puede deberse, en cuanto tenga un ratito te paso el trozo del error, a ver si sabrías solucionarmelo. :huh: :huh:
Saludos
Claro MeCraniDos , si te sale un error en la compilación de la librería no la compilas del todo , entonces al ponerla en el qt creator no te compila bien porque te faltan cosas al linkear. Tienes que tener cuidado con las librerías , enterarte de con qué versión de compilador están testeadas esas versiones de la librería para que compile bien. Yo siempre por experiencia , aconsejo también que para compilar cualquier librería la pongas en C:\ , así el compilador no se lía.No sé a que versión te refieres , si pudieses pasarme un enlace o algo. No te desesperes , compilar librerías es un coñazo, incluso yo la última vez que compilé estas tuve problemas y seguí mi tutorial.
A ver si estas navidades me pongo a actualizar un poco esto y aclarar algunas cosas.
¡Un saludo!
Buenas, tengo un problema cuando intento configurar qt, me sale el siguiente mensaje:
C:\qt>configure -platform win32-g++ -static -release -nomake example -nomake de
mos
/c/qt/C:/qt/qtbase/configure not found. Did you forget to run "init-repository"?
at C:\qt\configure line 86.
Estoy hace unos días intentando lograr que QT me genere un .exe no dependiente del framework y me estoy volviendo loco ya, acepto cualquier ayuda.
(estaba usando la versión que se instala sola del Qt SDK)
podrian actualizar este tutorial yo instalo qcreator ultima version y arranco pero no me reconoce la libreria xmpp. Porque es importante compilar las librerias estaticamente???
Cita de: omar-espanol en 19 Agosto 2016, 14:37 PM
podrian actualizar este tutorial yo instalo qcreator ultima version y arranco pero no me reconoce la libreria xmpp. Porque es importante compilar las librerias estaticamente???
Hola, actualmente no dispongo de tiempo para actualizarlo, pero seguramente en la página Qt habrá muchísima información en inglés para hacerlo.
Un saludo.