miércoles, 25 de junio de 2008

Instalar QT con Code::Blocks

Ahora es el turno de jugar con QT /Cute/ (previamente lo hicimos con GTK y su dichosa instalación) y empezamos con lo más tedioso y es su instalación, que aunque no es tan complicada como la de GTK, tiene su miga.
QT
, para quienes no lo sepan es una librería con una interfaz en C++ que orientada a la creación de aplicaciones de ventana multiplataforma.

Recientemente (17 de junio 2008) Nokia ha comprado a Trolltech para potenciar aún más su faceta multi-sistema y continuar con QTopia (imagino para usarlo en sus nuevos teléfonos mobiles.

Remarco que este tutorial esta orientado para su instalación bajo windows, aunque en linux debería ser exactamente lo mismo.

La primera diferencia respecto a GTK la vemos al descargar la librería: nos viene toda en un mismo paquete; pues si bien GTK se apoya sobre otras librerías de terceros, QT es principalmente todo un bloque, por lo que a la hora de descargarlo suma un punto en facilidad (haz sitio para 120MB). Otra diferencia es la licencia de uso, no podemos usar QT para desarrollar aplicaciones comerciales (sin antes pasar por caja claro), aunque siempre podemos usar su librería. para proyectos opensource.

El link para la versión opensource lo tenéis aquí (v4.4):
http://trolltech.com/downloads/opensource

Una vez descargado el tocho de librería, lo descomprimimos alli donde queramos dejarla instalada.

Atención!: Recomiendo acortar el nombre del directorio a qt4.4, pues el nombre por defecto es demasiado largo y puede dificultar los siguientes pasos (bueno vale, no me gustan los nombres de directorios largos).

Para ejecutar el siguiente paso debemos tener instalado MinGW (Si usáis Code::Blocks, seguramente tengáis un directorio llamado MinGW dentro de su directorio de instalación).

Añadimos el directorio MINGW/bin a la variable de entorno PATH.
Por seguridad, crea también la variable QMAKESPEC con valor "win32-g++" (sin las comillas).
De esta manera forzamos a usar el compilador g++ en caso de tener más de uno instalado.

Abrid una consola y os dirigís al directorio donde hayáis descomprimido QT y ejecutáis:
configure

Esto empieza a compilar la aplicación qmake. Un poco de paciencia porque puede llegar a tardar un poquillo (5min-30min, mas incluso...).

Una vez compilado qmake, faltará ejecutar:
make
quién por fin empezará a compilar las librerías.
Si qmake tardó, agárrate porque esto puede llevar toda una tarde. Así que tranquilamente puedes salir a pasear al perro porque a menos que tengas un pc ninja te vas a aburrir mirando el proceso.

Ya compiló? Pues te recomiendo un ultimo comando:
make clean
esto eliminará archivos temporales creados durante el proceso (muuuuuchos MB).

Bien, ahora abre Code::Blocks y crea una nueva variable global:
Settings/Global variables

Llámala "qt".
  • Rellena el campo base con la ruta en donde se encuentra la libreria
  • Rellena los campos "include" y "lib" con la ruta a "include" y "lib" respectivamente.
  • En User-defined fields usa una nueva fila y rellénalo de esta forma:

    • Campo izquierdo: mkspecs

    • Campo derecho:$(#qt)/mkspecs

Con esto hemos creado una variable llamada "qt" que podemos usar a lo largo de las opciones de configuración de Code::Blocks para apuntar fácilmente a los directorios "include" y "libs".

Lo ultimo es crear un nuevo proyecto (consola o ventana, como mas guste, pero que sea C++).

Para compilar aplicaciones QT hay que usar el Makefile creado por qmake.
Para indicarlo:
Project/Properties/Project Settings
Marcamos la casilla "This is a custom Makefile".

Vamos a especificar los directorios donde se encuentra la librería:
Project/Build Options

Con el nombre del proyecto seleccionado en la parte izquierda de la ventana, entramos en la pestaña Search Directories:
En la subpestaña Compiler escribimos:
$(#qt.include)
Y en la subpestaña Linker:
$(#qt.lib)

Y ya tenemos todo el tinglado montado.
Hay que tener una cosa en cuenta, y es que antes de compilar hay que crear un archivo make con qmake. Qmake hace uso de los archivos de proyecto .pro. Estos archivos le indican a qmake que ficheros utiliza nuestro proyecto para poder compilar correctamente. Paradójicamente qmake puede crear nos uno automáticamente:
qmake -project
Siempre y cuando todo esté bien referenciado en el código fuente. Con el .pro creado, simplemente un:
qmake
creará el archivo makefile y ya podremos compilar sin problemas con Code::Blocks. Ten en cuenta que cada vez que añadas un nuevo fichero a tu proyecto (o quites uno) debes actualizar el archivo makefile. Ignoro si este proceso puede ejecutarse automáticamente desde Code::Blocks, pero seguiré investigando ;)

3 comentarios:

ogre dijo...

hola amigo tengo unos inconvenientes con la instalacion:
Añadimos el directorio MINGW/bin a la variable de entorno PATH.
Por seguridad, crea también la variable QMAKESPEC con valor "win32-g++" (sin las comillas).
ya instale qt antes con vc++ pero no me compilo los ejemplos. entonces me recomendaron codeblocks. le agradeceria toda su ayuda. gracias
mi msn es kri003@hotmail.com

clinisbut dijo...

Hola ogre!
Pronto re-escribiré esta entrada pues me he dado cuenta de que hay unos cuantos pasos innecesarios (la creación de variables en codeblocks, y el descubrimiento de la libreria qt ya compilada en los servidores de trolltech)

Unknown dijo...

Hola amigo como va todo! bueno lo que pasa es que estoy migrando qt a una laptop con vista64 home premium en el winxp qt me ha funcionado perfecto..pero no he podido con la instalacion en el vista. tienes alguna informacion al respecto?. te lo agradezco mucho!