2009-01-27

Crear aplicaciones Qt en Windows usando Microsoft Visual C++ 2008 (Compilar, Depurar y Ejecutar desde el IDE)

Bueno en mi post anterior expliqué como se podían crear aplicaciones Qt en Windows usando Microsoft Visual C++ 2008 Express Edition y dije que había que compilar desde la consola por que ni idea como hacerlo desde el IDE, ya sé como hacerlo así que lo dejo aquí para el que le interese.

Bueno, lo primero es saber que Microsoft Visual C++ 2008 Express Edition tiene dos configuraciones de compilación: Debug y Release. La configuración de Debug se supone que compila el ejecutable con los símbolos de depuración de Windows y otras cosas, por lo que el ejecutable es más rastreable y de tamaño mayor, la configuración de Release no tiene nada de esto por lo que el tamaño del ejecutable es menor.

Vamos a preprar a Microsoft Visual C++ 2008 Express Edition para compilar nuestras aplicaciones Qt en ambas configuraciones, para empezar tenemos que crear dos archivos (.bat) de procesamiento por lotes que se encargaran de llamar al precompilador de Qt y preparar todo para que luego el Compilador y el Linker del Visual C++ puedan compilar el programa, los pasos son los siguientes:

Vamos a crear dos archivos (.bat) en la carpeta bin del Qt 4 (en mi caso C:\Qt\4.4.3\bin), al primero le llamaremos qcreate.bat, dentro de el escribimos estás líneas de comando:

qmake -project
qmake
nmake

Al segundo lo llamaremos qcreate-release.bat y en el escribiremos:

qmake -project
qmake -config release
nmake

Ahora ya tenemos las secuencias de comando listas, lo que sigue ahora es configurar al Microsoft Visual C++ 2008, para ello seguimos estos pasos:

1. Se creamos un proyecto nuevo aparecerá el asistente de configuración de proyectos de archivos MAKE:


Le damos clic en Siguiente y el asistente nos muestra la configuración de Debug:


Allí, en donde dice Línea de comandos de generación escribimos qcreate, que es el nombre del .bat que hemos creado y luego en donde dice Resultados (para depuración) escribimos debug\ antes del texto que ya se encuentra en el recuadro (sin eliminarlo), es decir que en el ejemplo el texto quedaría: debug\Text-Make.exe, para terminar damos clic en Siguiente.

Ahora nos muestra una ventana muy parecida solo que esta vez se trata de la configuración para el Release, en esta vamos a quitar la marca de verificación de la casilla Igual que la configuración Debug para que se activen los campos. En donde dice Linea de comandos de generación escribimos qcreate-release que es el nombre de nuestro .bat para los releases, y de forma similar a lo que hicimos antes en el recuadro que dice Resultados (para depuración) escribimos release\ antes del texto que se enucentra allí:


Luego damos clic en Finalizar.

Listo, eso es todo, ahora si podemos usar los comandos del IDE para generar (Generar -> Generar Solución / Generar Proyecto) o para Depurar (Depurar -> Iniciar Depuración) también podremos ver los errores y advertencias de la compilación (Ver -> Otras Ventanas -> Lista de Errores) y hacer clic sobre ellos para que el IDE nos lleve directo a la línea donde se encuentra el error.

Lo único que no he podido hacer es que el IDE vea los archivos de Include del Qt, eso si no lo he podido hacer por que los archivos de Include del Qt tienen inclusiones anidadas y el Visual C++ 2008 como que es muy perezoso para irse a buscar las referencias en los archivos anidados entonces cuando uno escribe hello. (en el tutorial) no puede esperar que el Visual C++ le muestre los miembros de la clase QPushButton.

Si encuento una forma de hacerlo posteare nuevmanete. Por ahora los dejo. Comentarios y etc siempre están bien recibidos, siempre y cuando no sean Spam.

2009-01-26

Crear aplicaciones Qt en Windows usando Microsoft Visual C++ 2008

Hola, para los que no saben que es Qt se trata de una API multiplataforma para crear aplicaciones nativas en Windows, Linux, mac, Solaris, etc y poder portarlas sin cambiar ninguna línea de código. Si quieren ver más información sobre este paquete pueden visitar: http://www.qtsoftware.com/

Yo ya había escrito dos posts en este mismo blog sobre Qt y como instalarlo en Linux, si quieren darles un vistazo:

El remplazo de Visual Basic
Instalar Qt4

La verdad es que había estado intentando hacer correr este paquete en Windows pero hasta ahora no había podido, traté con DevC++ y con Eclipse pero nada, quien pensaría que la solución era un producto de Microsoft.

Recientemente Microsoft liberó las versiones Express del Visual Studio 2008 que se pueden descargar gratuitamente. Con este producto podemos compilar el Qt y también crear nuestras propias aplicaciones. En este post explicaré como hacerlo.

Obviamente lo primero es descar e instalar el Visual C++ 2008 Express Edition, una vez instalado (pesa como 150 MB) debemos descargar la versión de Código Fuente de Qt4 para Windows de la página de Qt Software. Ojo, no descargen la versión que viene con el MinGW sino la que es solo código fuente. La descarga pesa como 120 MB, es un archivo comprimido.

Descargamos el archivo y lo descomprimimos en C:\Qt\4.4.3 [EL NOMBRE DE LA CARPETA NO DEBE CONTENER ESPACIOS] (la 4.4.3 fue la versión que yo bajé pero puede que para el momento en que lean este post sea una más reciente). En esa carpeta queda un archivo que se llama configure.exe este es el autconf del builder, hay que ejecutarlo PERO NO SE PRECIPITEN, LEAN ABAJO.

Vamos a Inicio -> Todos los Programas -> Microsoft Visual C++ 2008 Express Edition -> Visual Studio Tools -> Símbolo del Sistema de Visual Studio 2008, esto nos abre una consola en el directorio del Visual C++ y habilita los paths para el maker, y el linker.

En esta consola nos vamos a C:\Qt\4.4.3\ (o el directorio donde hayan descomprimido el qt), una vez allí ejecutamos:

C:\Qt\4.4.3\>configure -platform win32-msvc2008

Este comando prepara el código para que se pueda compilar con el compilador de Microsoft Visual Studio 2008, una vez temine el proceso veremos un mensaje como este:

Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.

Entonces simplemente hacemos lo que dice ahi, ejecutamos nmake para que Visual C++ empiece a compilar. Este proceso tarde un rato, igual que en Linux, la consola va a estar compilando durante un tiempo creando los ejecutables de Qt Designer, Qt Assistant, el moc, etc y las dll de Qt, cuando el proceso termina Qt esta compilado e instalado en el equipo listo para usarse.

Ahora vamos a ver como crear un programita en Qt usando el Visual C++, vamos a crear el Hello World del tutorial de Qt. Pero primero hay algo adicional que debemos hacer y es agregar la carpeta bin de Qt al Path del Sistema:

Damos clic en Inicio y luego clic derecho en Mi PC, ahi vamos a Propiedades y en la pestaña de Opciones Avazadas le damos clic en Variables de Entorno, aparece un cuadro de diálogo con las variables de sistema y las variables de usuario, en las variables de sistema buscamos la variable Path, la seleccionamos y damos clic en Modificar. Al final del texto colocamos un ; (punto y coma) y despues escribimos la ruta del bin de Qt, que en mi caso era C:\Qt\4.4.3\bin y damos clic en Aceptar en todos los cuadros de diálogo.

Ahora si vamos a crear el Hello World.

Abrimos el Visual C++ 2008 y cremos un Nuevo Proyecto, en donde dice Tipo de proyecto seleccionamos Visual C++ -> General -> Proyecto de archivos MAKE. Seleccionamos la ubicación y el nombre del proyecto que en este caso será Hello World. Retiramos la marca de la casilla Crear directorio para la solución y damos clic en Aceptar.

Visual Studio nos abre un asistente para configuración del proyecto de archivos MAKE, vamos a ignorarlo y daremos clic simplemente en Finalizar. Se creará el proyecto y apareceran las carpetas y archivos usuales del Visual C++ (crea un montón de basura).

Vamos a crear el main, entonces, en el Explorador de Soluciones, en la carpeta Archivos de código fuente damos clic derecho y ahi seleccionamos Agregar -> Nuevo Elemento y escojemos Archivo C++ (.cpp), le damos el nombre main y hacemos clic en Aceptar.

El Visual Studio nos abre un editor de código, ahi vamos a escribir el código que está en el Qt Assistant, en el tutorial de Hello World que es este:

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QPushButton hello("Hello world!");

hello.show();
return app.exec();
}

Le damos en Guardar y ya estara listo el proyecto, ahora vienen las malas noticias, no podemos compilar desde el IDE (o por lo menos yo no he podido por que hay que configurarlo y yo no me he puesto en esas) así que vamos a compilar por consola:

Abrimos otra vez el Símbolo del Sistema de Visual Studio 2008 que abrimos para compilar el Qt. En esa consola vamos a la carpeta donde hemos guardado el proyecto de Visual C++ y allí escribimos estos comandos:

qmake -project
qmake
nmake

Esto compila el programa y genera el ejecutable en la carpeta Debug, en mi caso Hello World.exe. Desde la misma consola o desde un explorador de Windows podemos ejecutar la aplicación para constatar que funciona.



Bien, ya hemos creado y ejecutado una aplicación en Windows con Qt. Si corre el Hello world corre cualquier cosa. :)

No duden en dejar sus comentarios, dudas o preguntas.

Se cuidan Bye Bye.