2007-05-12

Instalar Qt4

Bueno, a petición general aquí está el pseudo-tutorial de como instalar Qt4, aunque no es nada difícil, como pronto lo descubrirán, en realidad es bastante fácil.

Antes que nada, el compilador:

Antes de empezar con el tutorial en forma vamos a indicar aquí unas cosas que creo que sobran pero por si las moscas para que no se les pase. Para poder compilar aplicaciones C++ (con cualquier programa, utilidad, librería o lo que quieran) necesitan el compilador C++ de GNU deben instalar el compilador ANTES de empezar este tutorial, Asegúrense de tener instalados los siguientes paquetes en el Kubuntu: (Asegúrense de instalar la versión más reciente, o más apropiada para su sistema, según sea el caso)
  • cpp (Preprocesador de GNU)
  • gcc (El compilador C de GNU)
  • gcc-base (Base para el compilador Liberías, etc)
  • gcc-doc (Opcional, es la documentación)
  • g++ (El compilador C++ de GNU)
Francamente no estoy seguro si es necesario instalar el compilador C y el compilador C++ pero para no correr riesgos siempre los instalo los dos. Ustedes pueden elegir no instalar el compilador C si no quieren (bajo su propio riesgo). El compilador que acabamos de instalar servirá tanto para compilar las aplicaciones que hagamos en Qt4 como para compilar el mismo Qt4 en caso de ser necesario.

Instalar el Qt4 (Si el mundo es color rosa...)

Bueno, vamos a empezar por lo más sencillo, es descargar el Qt4 que, como posiblemente esperan, en Kubuntu se encuentra entre los repositorios del sistema operativo, necesitarán ubicar y descargar estos paquetes:
  • libqt4-core
  • libqt4-dev
  • libqt4-gui
  • libqt4-sql
Que instalarán las librerías necesarias para poder trabajar con qt4, e incluirán también el Designer (Diseñador de interfases) y el Assistant (La ayuda del Qt4). Teóricamente después de instalar estos paquetes el sistema estará capacitado para crear y compilar aplicaciones con el Qt4. Vamos a probarlo:

Lo mejor es hacer el "Hello World" del tutorial de Qt4. Para ello ejecuten el comando assistant que debe mostrar una ventana con la ayuda del Qt4. Ahí ubiquen el Qt Reference Documentation y verán un menú con muchas opciones, a la izquierda, en el grupo Getting Started hay un vínculo que dice Tutorial and Examples. Al hacer clic ahí obtenemos acceso a un montón de ejemplos y tutoriales, todo lo necesario para aprender Qt4:

En Qt Tutorial buscar el primer tutorial "Hello World" que explica como crear y ejecutar nuestra primera aplicación en Qt4. Si escribimos el código en el Kate y lo guardamos en un archivo .cpp en un directorio (que el archivo quede solito) y luego desde la consola corremos las siguientes ordenes en ese directorio:

qmake -project

qmake

make

Teóricamente obtendremos un archivo ejecutable con el nombre del directorio al que podremos ejecutar con el bash si escribimos ./[nombre] donde [nombre] pues es el nombre del ejecutable o haciéndole clic encima en el Konqueror. Bien yo lo probé y no me funcionó fue un desastre el compilador me tiró como 1000 errores y no pude compilarlo, estaba muy decepcionado, por eso digo que esto es cuando el mundo es color rosa. Por suerte Mario Young me ayudó y me guió paso a paso en el proceso de descargar y compilar el Qt4. Ahora yo ponga esa información aquí por si a ustedes les pasa lo mismo, si no, salten a la sección Herramientas de Desarrollo.

Descargar y compilar el Qt4 (Para los que no somos tan afortunados...)

Bueno, en caso de que lo anterior falle todavía hay una esperanza para poder crear aplicaciones Qt4 en Linux y es hacerlo a la antigua, i.e. descargar y compilar el paquete. Si lo van a hacer prográmense para una larga jornada, por ahí unas dos horas, no por que sea complicado sino por que compilarlo lleva un rato. Bueno, vamos a reconstruir un poco la conversación con Mario:

Bajénse el código fuente del Qt4, este es el Link que me dio Mario, no sé si ya haya una versión más reciente: Código fuente del Qt4. Al momento de escribir esta entrada el vínculo funcionaba, si el vínculo se rompe o quieren asegurarse de tener la versión más reciente del Qt4 pueden entrar a Trolltech y bajárselo de la página.

Ok, una vez lo descarguen descompriman el .tar.gz en alguna carpeta, puede ser el home para que el sistema no los joda por los permisos, luego actualizamos los binarios del sistema. Bueno, ahora vemos a lo demorado: Vayan a la carpeta donde descomprimieron el Qt4 y desde la consola ejecuten:

./configure

Ese comando prepara todo para que puedan compilar, al ejecutarlo la consola comenzará a botar y botar texto (perdonen si suena un poco campesino), todo será configurado y cuando termine la configuración aparecerá un mensaje como este:

Qt is now configured for building. Just run 'make'.

Once everything is built, you must run 'make install'.

Qt will be installed into /usr/local/Trolltech/Qt-4.2.3

Listo, ahora hay que hacer lo que el dice, ejecutar make para que el sistema comience a compilar, este es el proceso que más dura, como una hora más o menos, durante la compilación la consola va a estar ahí mostrando mensajes y mensajes pero por suerte el proceso no exige mucho a la CPU así que mientras tanto pueden no sé... ver anime por ejemplo. En la conversación con Mario el make entró a las 19:30 y terminó a las 20:58.

Lo siguiente es escribir en la consola sudo make install para que el software se instale. Al hacerlo saldrán otro montón de mensajes, al terminar teóricamente el Qt4 esta listo para funcionar pero... según Mario aún hace falta remplazar los archivos en el bin del sistema, yo no sé si sea cierto o no pero yo lo hice, dejo a su elección el hacerlo o no, pero yo recomiendo hacerlo por que no sé que pasa si no se hace.

Cuando el make termine ya tendrán todo listo para comenzar. Pero primero hay que meter eso en el bin del sistema. Para hacerlo abran una ventana del konqueror con permisos de administrador: kdesu konqueror y vayan a la carpeta /usr/local/Trolltech/Qt-4.2.3 ahora, COPIEN, no corten, los archivos que hay en esa carpeta así:
  • lo que hay en /../Troll.../Qt-4.../bin a /usr/bin
  • lo que hay en /../Troll.../Qt-4.../lib a /usr/lib
  • lo que hay en /../Troll.../Qt-4.../includes a /usr/includes
Si, remplaza los archivos que hay en el directorio de sistema (a mi me dio un poco de miedo pero no pasa nada) es necesario para asegurarnos de que el Qt4 va a compilar desde cualquier lugar y no nos va a molestar después que por que no encuentra las librerías, etc, etc, etc...

Bien, a este punto ya todo debe funcionar, así que hagan el intento con el Hello World como se explica al final de la parte en que la vida es color de rosa... si todo va bien tendrán un Hello World funcional, si no, ...se sale del alcance de este tutorial... a mirar en foros, etc... etc... o preguntarle a Xavier ..... XD

Herramientas de Desarrollo

No hay como el viejo y confiable Kate y la consola, pero a veces uno quiere un entorno más complicado, que le administre proyectos, etc, que tenga asistencia de codificación, etc. Así que si quieren uno así aquí hay algunas recomiendaciones:

Bueno, lo más standard en KDE es usar el KDevelop, yo lo bajé, lo instalé y lo probé y... *suspiro* no me funcionó... Tengo un bulto de sal encima... Por alguna razón me es imposible compilar un proyecto Qt4 creado en KDevelop, no sé por que pero... no hay poder humano... así que yo no uso KDevelop pero si ustedes quieren usarlo pues pueden descargarlo de los repositorios del Kubuntu. Si tienen el Fiesty supongo que ese ya viene con el KDevelop actualizado y pueden simplemente descargarlo y yá, necesitan el KDevelop 3.4.0 mínimo. Si todavía usan el Edgy o si el Fiesty no viene con esa versión del KDevelop tendrán que Instalar esta actualización del KDE. y bajarse la versión actualizada del KDevelop.

Una vez en al KDevelop creen un proyecto de QMake, escriban en el código y desde el menú proyecto seleccionen la opción Run QMake and Friends que tóricamente debe compilarles el proyecto perfectamente... como ya les dije a mi eso nunca me funcionó.... son unos.... en fin.... por eso decidí no usar KDevelop, Xavier me dice que a él le funciona perfecto... así que mucha suerte para ustedes también.

Bien, como el @#$%# KDevelop no funcionó seguí usando el Kate hasta que Mario me habló del QDevelop que es un entornito bastante bueno, aunque todavía le falta mucho, pues... por ahora esta bien, tiene asistencia de código que es una gran ventaja. Lo pueden bajar de La página de descarga del QDevelop. Hay que compilarlo... pero... si ya compilaron el Qt4 pues compilar el QDevelop debe ser pan comido.

De otro lado esta el Eclipse que con el CDK se vuelve un entorno de desarrollo C++, a mi me parece bueno, el problema es que a pesar de que los includes del Qt4 aparecen en la lista del Eclipse el @#$% sigue haciéndose el ...marica... y no los ve, entonces cuando uno hace el include #include Eclipse le dice que no encuentra esa cabecera y por tanto no da asistencia de codificación. La otra cosa del Eclipse es que para que pueda funcionar bien con el QMake se ve que hay que pasar mucho tiempo configurando el comando de compilación y la verdad... no tengo ganas de hacerlo ahora... si alguien logra configurar el Eclipse para que le compile con el Qt4 pues que ponga el comentario.

Ya para terminar, la imagen que se veía tan impresionante con los Slots y las Signals del Qt4 en la entrada anterior es el Designer que viene incluido con el Qt4, para ejecutarlo hay que escribir el comando designer para que aparezca la aplicación. A pesar de que yo instalé también la versión del Qt4 que está en los repositorios el Synaptic no me creo iconos para las aplicaciones del Qt4 así que los tuve que crear yo con el editor del menú K. Nada del otro mundo, estoy seguro que saben como hacerlo. Así que recuerden los comandos importantes para el Qt4 son: qmake -project, qmake y make para compilar los programas, assistant para la ayuda y designer para el diseñador de interfases.

Y finalmente, hace rato que escribí un mini-tutorial sobre como crear y compilar aplicaciones C++ en Linux usando eclipse, no se que tan útil les sea pero se los dejo por si acaso.

Espero... algún comentario de los que pidieron que publicara el tutorial.... al menos...