NetBeans con C++ y Qt

miércoles, julio 16, 2008

NetBeans es un IDE que aparte de ser gratuito y open-source es muy completo. Lo he usado para varios proyectos que he desarrollado en Java y nunca me ha dejado mal.

Pero ¿qué pasa si queremos esa funcionalidad para programar en C++ usando las librerías gráficas de Qt? Pues solo hace falta seguir estos sencillos pasos y tendremos a NetBeans configurado como IDE para C++/Qt. Esta explicación se hará bajo un sistema operativo GNU/Linux y suponiendo que ya tenemos el NetBeans instalado (sino puede visitar la página de NetBeans, descargarlo e instalarlo).

Configuración del Editor
  1. Instalar el plugin para C/C++: Vamos al menú Tools->Plugins, en la pestaña Available Plugins buscamos el de C/C++, lo marcamos y hacemos clic en instalar.



    Luego hacemos clic en Next, aceptamos la licencia y comenzará la descarga del plugin



  2. Incluir las librerias de C++ y Qt: Para esto vamos al menú principal, en Tools->Options y nos ubicamos en la pestaña Code Assistance.



    Aquí debemos agregar las siguientes rutas para que el editor reconozca las librerias de C++

    /usr/include/c++/4.2
    /usr/include/c++/4.2/i486-linux-gnu
    /usr/include/c++/4.2/backward
    /usr/local/include
    /usr/lib/gcc/i486-linux-gnu/4.2.3/include
    /usr/include

    Y estas otras para que reconozca las librerias de Qt

    /usr/include/qt4
    /usr/include/qt4/Qt
    /usr/include/qt4/QtCore
    /usr/include/qt4/QtGui
    /usr/include/qt4/QtSql
    /usr/include/qt4/QtNetwork

    Si está usando un sistema operativo distinto de GNU/Linux debe buscar el equivalente de estas rutas.

Si todo ha salido bien al hacer clic en el menú File->New Project deberíamos tener una ventana como la que se muestra a continuación, donde se observa claramente la nueva opción de C/C++ en las categorías de proyectos.



Configuración del Proyecto

Con lo que hemos hecho hasta ahora NetBeans sabe como crear, compilar y ejecutar un proyecto en C/C++ e incluso sabe dónde están las librerías estándar de C/C++ y Qt, pero aún no tiene idea de cómo compilar y ejecutar una aplicación para Qt.

NetBeans usa un archivo Makefile para cada proyecto (generado automáticamente) donde se encuentran las reglas para la compilación. Las aplicaciones Qt no usan las mismas reglas que las aplicaciones C/C++ estándares, así que la solución para esto la tenemos en estos sencillos pasos

  1. Generar el Makefile: Debemos generar nuestro propio Makefile indicándole a NetBeans las reglas para compilar nuestros proyectos Qt. Las aplicaciones Qt se compilan de la siguiente forma:

    qmake -project (para generar el proyecto, es decir el archivo .pro)
    qmake (para generar el Makefile)
    make (para compilar la aplicación usando el Makefile de arriba)


    Es decir, solo tenemos que agregar las dos instrucciones con qmake antes del make correspondiente. Sin embargo aquí se presenta un problema, NetBeans trabaja con un archivo Makefile y qmake trabaja con otro archivo Makefile, ambos son diferentes pero con el mismo nombre. Si compilamos el proyecto de esta forma el Makefile generado por qmake sobreescribirá al Makefile del NetBeans y tendremos que estar reescribiendo este archivo cada vez que queramos generar el proyecto. Para evitar eso basta con hacer que qmake genere su archivo con otro nombre, eso lo logramos agregando la opción -o al qmake. El nuevo Makefile del Netbeans (el único Makefile que debería queda a este punto) podría ser algo como:

    # build
    build: QMake
    make -f QMakefile

    # clean
    clean: QMake
    make distclean -f QMakefile
    rm *.pro -f
    rm QMakefile -f

    # all
    all: build

    QMake:
    qmake -project
    qmake -o QMakefile

    Nota: Antes de cada instrucción DEBE ir un tabulador.

    En el código anterior se nota claramente la definición de la regla QMake, que se encargará de manejar todo lo referente al qmake, además pasamos el parámetro -o al qmake para que genere un archivo de nombre QMakefile y no sobreescriba el Makefile de NetBeans. En el build se llama a la regla QMake (para que qmake genere el .pro y el QMakefile) y luego se hace el make del QMakefile, en el clean llamamos a la regla QMake (para que qmake limpie todo), hacemos la limpieza con make y luego borramos el .pro y el QMakefile para asegurarnos de que se crearan nuevamente la próxima vez que generemos el proyecto

  2. Especificar la ruta del ejecutable: NetBeans ubica los ejecutables en una ruta que depende de la forma en la que generamos el proyecto (Debug o Release) pero qmake coloca el ejecutable en la misma ruta donde se encuentra el proyecto (.pro). Para lograr que NetBeans pueda ejecutar nuestra aplicación debemos especificar la ruta en la que se encuentra nuestro ejecutable. Para ello vamos a las propiedades del proyecto (en la ventana de proyectos hacemos clic sobre el nombre de nuestro proyecto y luego clic derecho -> Properties). Acá buscamos la opción Linker->General y editamos el atributo Output; solo debemos colocar el nombre de la carpeta del proyecto (con mayúsculas y minúsculas)


Con esto ya pueden disfrutar de un completo IDE para C/C++ y Qt.

2 comentarios:

Endrigo dijo...

Excelente post. Seguí el ejemplo y me fue de mucha ayuda. Gracia.

Juan Carlos Cruz dijo...
Este comentario ha sido eliminado por el autor.