Eclipse 4.3 (Kepler) para la programación en C/C++
On noviembre 9, 2021 by adminEclipse es un Entorno de Desarrollo Integrado (IDE) de código abierto apoyado por IBM. El sitio madre es @ www.eclipse.org. Eclipse es popular para el desarrollo de proyectos Java. También soporta C/C++, PHP, Python, Perl, y otros desarrollos de proyectos web a través de plug-ins extensibles. Eclipse es multiplataforma y se ejecuta bajo Windows, Linux y Mac OS.
Cómo instalar Eclipse C/C++ Development Tool (CDT) 8.1.2 para Eclipse 4.2.2 (Juno)
Paso 0: Instalar MinGW GCC o Cygwin GCC
Para utilizar Eclipse para la programación en C/C++, se necesita un compilador de C/C++. En Windows, puede instalar MinGW GCC o Cygwin GCC. Elija MinGW si no está seguro, porque MinGW es más ligero y fácil de instalar, pero tiene menos características.
- MinGW GCC: Lea «Cómo instalar MinGW».
- Cygwin GCC: Lea «Cómo instalar Cygwin». Asegúrese de seleccionar los paquetes «
gcc
«, «g++
«, «gdb
» y «make
» en la categoría «Devel
» (Desarrollo) – estos paquetes no forman parte de la instalación por defecto.
Paso 1: Instalar Eclipse C/C++ Development Tool (CDT)
Dos maneras de instalar CDT, dependiendo de si ha instalado previamente un Eclipse:
- Si ya ha instalado «Eclipse for Java Developers» u otros paquetes de Eclipse, podría instalar el plug-in de CDT de la siguiente manera:
Inicie Eclipse ⇒ Ayuda ⇒ Instalar nuevo software ⇒ En el campo «Work with», despliegue el menú desplegable y seleccione «Kepler – http://download.eclipse.org/releases/kepler» (o juno para Eclipse 4.2; o helios para Eclipse 3.7).
En la casilla «Nombre», expanda el nodo «Lenguaje de programación» ⇒ Marque «Herramientas de desarrollo C/C++» ⇒ «Siguiente» ⇒ … ⇒ «Finish». - Si no tiene instalado ningún paquete de Eclipse, puede descargar «Eclipse IDE for C/C++ Developers» desde http://www.eclipse.org/downloads, y descomprimir el archivo descargado en un directorio de su elección.
Paso 2: Configuración
No necesita realizar ninguna configuración, siempre y cuando los binarios Cygwin o MinGW estén incluidos en la variable de entorno PATH
. CDT busca en PATH
para descubrir los compiladores C/C++.
Escribiendo su primer programa C/C++ en Eclipse
Programa C++
Paso 0: Inicie Eclipse
- Inicie Eclipse ejecutando «
eclipse.exe
» en el directorio instalado de Eclipse. - Elija un directorio apropiado para su espacio de trabajo (es decir, donde desee guardar sus trabajos).
- Si aparece la pantalla de «bienvenida», ciérrela haciendo clic en el botón «cerrar».
Paso 1: Crear un nuevo proyecto C++
Para cada aplicación C++, es necesario crear un proyecto para guardar todos los códigos fuente, archivos de objetos, archivos ejecutables y recursos relevantes.
Para crear un nuevo proyecto C++:
- Elija el menú «Archivo» ⇒ «Nuevo» ⇒ Proyecto… ⇒ C/C++ ⇒ Proyecto C++.
- Se abre el cuadro de diálogo «Proyecto C++».
- En el campo «Nombre del proyecto», introduzca «
FirstProject
«. - En la casilla «Tipos de proyecto», seleccione «Ejecutable» ⇒ «Proyecto vacío».
- En la casilla «Cadenas de herramientas», elija su compilador, por ejemplo, «Cygwin GCC» o «MinGW GCC» ⇒ Siguiente.
- Aparece el cuadro de diálogo «Seleccionar configuraciones». Seleccione tanto «Debug» como «Release» ⇒ Finalizar.
Paso 2: Escribir un programa Hello-world C++
- En el «Explorador de proyectos» (panel más a la izquierda) ⇒ Haga clic con el botón derecho del ratón en «
FirstProject
» (o utilice el menú «Archivo») ⇒ Nuevo ⇒ Archivo de origen. - Se abre el diálogo «Nuevo archivo de origen».
- En el campo «Archivo fuente», introduzca «
Hello.cpp
«. - Haga clic en «Finalizar».
- En el campo «Archivo fuente», introduzca «
- El archivo fuente «
Hello.cpp
» se abre en el panel del editor (haga doble clic en «test.cpp
» para abrirlo si es necesario). Introduzca los siguientes códigos:#include <iostream>using namespace std; int main() { cout << "Hello, world!" << endl; return 0;}
Si aparece el error «inclusión no resuelta»
Si aparece el error «inclusión no resuelta» junto a la sentencia
#include
, las «rutas de inclusión para las cabeceras» no están configuradas correctamente. Seleccione el menú «Proyecto» ⇒ Propiedades ⇒ C/C++ General ⇒ Rutas y símbolos ⇒ En la pestaña «Includes»:Para Cygwin GCC:
- «Añada» los siguientes directorios a «GNU C», donde
$CYGWIN_HOME
es su directorio instalado de Cygwin:$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include-fixed
$CYGWIN_HOME\usr\include
$CYGWIN_HOME\usr\include\w32api
- «Añadir» los siguientes directorios a «GNU C++», donde
$CYGWIN_HOME
es su directorio instalado en Cygwin:$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++
-
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++\i686-pc-cygwin
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++\backward
-
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include-fixed
$CYGWIN_HOME\usr\include
$CYGWIN_HOME\usr\include\w32api
Para MinGW GCC:
- «Añada» los siguientes directorios a «GNU C», donde
$MINGW_HOME
es su directorio instalado de MinGW:$MINGW_HOME\lib\gcc\mingw32.6.x\include
-
$MINGW_HOME\include
$MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed
- «Añadir» los siguientes directorios a «GNU C++», donde
$MINGW_HOME
es su directorio instalado en Cygwin:$MINGW_HOME\lib\gcc\mingw32.6.x\include\c++
$MINGW_HOME\lib\gcc\mingw32.6.x\include\c++\mingw32
$MINGW_HOME\lib\gcc\mingw32.6.x\include\c++\backward
$MINGW_HOME\lib\gcc\mingw32.6.x\include
$MINGW_HOME\include
$MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed
NOTA: Para encontrar las rutas de las cabeceras, puedes hacer una búsqueda en cabeceras como «
stdio.h
» (para C) y «iostream
» (para C++) bajo el directorio instalado de Cygwin o MinGW.Nota: Si encuentra «error al cargar bibliotecas compartidas» durante el enlace. Instale «libmpfr4
» en cygwin.Paso 3: Compilar/Construir
Haga clic con el botón derecho en el «
FirstProject
» (o utilice el menú «Proyecto») ⇒ elija «Construir proyecto» para compilar y enlazar el programa.Paso 4: Ejecutar
Para ejecutar el programa, haga clic con el botón derecho del ratón en el «
FirstProject
» (o en cualquier lugar de la fuente «test.cpp
«, o seleccione el menú «Ejecutar») ⇒ Ejecutar como ⇒ Aplicación local de C/C++ ⇒ (Si lo pide, elija el depurador gdb de Cygwin) ⇒ La salida «¡Hola, mundo!» aparece en el panel de la «Consola».NOTA: Necesita crear un nuevo proyecto C++ para CADA uno de sus problemas de programación. Esto es un lío para escribir programas de juguete!
Programa C
Siga los mismos pasos que arriba. Crea un «Proyecto C» (en lugar de «Proyecto C++»). Prueba el siguiente programa Hello-world (llamado «
Hello.c
«).#include <stdio.h> int main() { printf("Hello, world!\n"); return 0;}
Programa C++ con Makefile
En los ejemplos anteriores, utilizamos el llamado managed-make donde Eclipse generó automáticamente un makefile para construir el programa. También podemos optar por escribir nuestro propio makefile para tener un control total del proceso de construcción.
Paso 1: Crear un proyecto C++ Makefile
Desde el menú «File» ⇒ New ⇒ Project… ⇒ C/C++ ⇒ Proyecto C++ ⇒ En «Nombre del proyecto», introducir «
HelloCppMakefile
» ⇒ En «Tipo de proyecto», elegir «Proyecto Makefile «, «Proyecto vacío» ⇒ En «Cadenas de herramientas», elegir «Cygwin GCC» o «MinGW GCC». Ignore el mensaje de advertencia.Paso 2: Escribir un programa C++
Haga clic con el botón derecho en el proyecto ⇒ Nuevo ⇒ Archivo fuente ⇒ En «Archivo fuente», introduzca «
Hello.cpp
» ⇒ Introduzca los siguientes códigos fuente:#include <iostream>using namespace std; int main() {cout << "Hello, world!" << endl;return 0;}
Paso 3: Escribir un Makefile
Haga clic con el botón derecho del ratón en el proyecto ⇒ Nuevo ⇒ Archivo ⇒ En «Nombre de archivo», introduzca «
makefile
» ⇒ Introduzca los siguientes códigos. Tenga en cuenta que debe utilizar un tabulador (NO espacios) para la sangría.all: Hello.exe clean:rm Hello.o Hello.exe Hello.exe: Hello.og++ -g -o Hello.exe Hello.o Hello.o: Hello.cppg++ -c -g Hello.cpp
Paso 4: Construir el proyecto
Haga clic con el botón derecho del ratón en el proyecto ⇒ Construir proyecto.
Paso 5: Ejecutar el programa
Haga clic con el botón derecho del ratón en el proyecto ⇒ Ejecutar como ⇒ Aplicación local C/C++.
Escriba un makefile para compilar programas de juguete bajo un proyecto.
Lea la documentación
Como mínimo, DEBERÍA hojear la «Guía del usuario de Workbench» y la «Guía del usuario de desarrollo de C/C++» de Eclipse – accesibles a través de la página de «Bienvenida» o del menú «Ayuda» de Eclipse. Esto le ahorrará muchas horas de agonía tratando de averiguar cómo hacer algunas cosas más tarde.
La depuración de programas C/C++ en Eclipse CDT
Poder utilizar un depurador de gráficos para depurar el programa es crucial en la programación. Podría ahorrarle innumerables horas adivinando lo que salió mal.
Paso 0: Escribir un programa en C++ – El siguiente programa calcula e imprime el factorial de
n
(=1*2*3*...*n
). El programa, sin embargo, tiene un error lógico y produce una respuesta errónea paran
=20
(«The Factorial of 20 is -2102132736
» – ¡¿un número negativo?!).1234567891011121314
#include <iostream>using namespace std; int main() { int n = 20; int factorial = 1; // n! = 1*2*3...*n for (int i = 1; i <= n; i++) { factorial *= i; } cout << "The Factorial of " << n << " is " << factorial << endl; return 0;}
The Factorial of 20 is -2102132736
Usemos el depurador gráfico para depurar el programa.
Paso 1: Establecer un punto de interrupción inicial – Un punto de interrupción suspende la ejecución del programa para que usted pueda examinar los estados internos (por ejemplo, valor de las variables) del programa. Antes de iniciar el depurador, debe establecer al menos un punto de interrupción para suspender la ejecución dentro del programa. Establezca un punto de interrupción en la función
main()
haciendo doble clic en el margen izquierdo de la línea que contienemain()
. Aparecerá un círculo azul en el margen izquierdo indicando que se ha establecido un punto de interrupción en esa línea.Paso 2: Iniciar el depurador – Haga clic con el botón derecho del ratón en el proyecto (o utilice el menú «Ejecutar») ⇒ «Depurar como» ⇒ «Aplicación local de C/C++» ⇒ elija «Sí» para cambiar a la perspectiva de «Depuración» (Una perspectiva es una disposición particular de los paneles para adaptarse a una determinada tarea de desarrollo como la edición o la depuración). El programa comienza a ejecutarse pero suspende su funcionamiento en el punto de interrupción, es decir, la función
main()
.Como se ilustra en el siguiente diagrama, la línea resaltada (también señalada por una flecha azul) indica la sentencia que se ejecutará en el siguiente paso.
Paso 3: Paso a paso y observación de las variables y salidas – Haga clic en el botón «Paso a paso» (o seleccione «Paso a paso» en el menú «Ejecutar») para recorrer su programa en un solo paso. En cada paso, examine el valor de las variables (en el panel «Variable») y las salidas producidas por su programa (en el panel «Consola»), si las hay. También puede colocar el cursor en cualquier variable para inspeccionar el contenido de la misma.
Pasar por el programa y observar los valores de las variables internas y las salidas producidas es el medio definitivo para depurar programas – ¡porque es exactamente como el ordenador ejecuta su programa!
Paso 4: Punto de interrupción, Ejecutar a la línea, Reanudar y Terminar – Como se ha mencionado, un punto de interrupción suspende la ejecución del programa y le permite examinar los estados internos del mismo. Para establecer un punto de interrupción en una declaración en particular, haga doble clic en el margen izquierdo de esa línea (o seleccione «Toggle Breakpoint» en el menú «Run»).
«Resume» (reanudar) continúa la ejecución del programa, hasta el siguiente punto de interrupción, o hasta el final del programa.
«Single-step» (un solo paso) a través de un bucle con un gran recuento consume mucho tiempo. Puede establecer un punto de interrupción en la declaración inmediatamente fuera del bucle (por ejemplo, la línea 12 del programa anterior), y emitir «Reanudar» para completar el bucle.
Alternativamente, puede colocar el cursor en una declaración particular, y emitir «Ejecutar a la línea» desde el menú «Ejecutar» para continuar la ejecución hasta la línea.
«Terminar» termina la sesión de depuración. Siempre termine su sesión de depuración actual usando «Terminate» o «Resume» hasta el final del programa.
Paso 5: Volver a la perspectiva C/C++ – Haga clic en el icono de la perspectiva «C/C++» en la esquina superior derecha para volver a la perspectiva «C/C++» para seguir programando (o en el menú «Ventana» ⇒ Abrir perspectiva ⇒ C/C++).
No puedo recalcar más que dominar el uso del depurador es crucial en la programación. Explore las características proporcionadas por los depuradores.
Otras características del depurador
Modificar el valor de una variable: Puede modificar el valor de una variable introduciendo un nuevo valor en el panel «Variable». Esto es útil para modificar temporalmente el comportamiento de un programa, sin cambiar el código fuente.
Step-Into y Step-Return: Para depurar una función, es necesario utilizar «Step-Into» para entrar en la primera sentencia del método. Puede utilizar «Step-Return» para volver al llamador, en cualquier parte del método. Alternativamente, usted podría establecer un punto de interrupción dentro de un método.
NOTA: Si usted recibe el mensaje de error «No se puede encontrar un archivo de origen en
/cygdrive/c
…» durante la depuración, es necesario configurar un mapeo entre «/cygdrive/c
» y «c:/
» (suponiendo que su programa en guardado en la unidad c. Desde «Ventana» ⇒ «Preferencias» ⇒ «C/C++» ⇒ «Debug» ⇒ «Common Source Lookup Path», seleccione «Add» ⇒ «Path Mapping».Tips &Trucos
Lea los Tips &Trucos de Eclipse para Java para obtener consejos generales en el uso de Eclipse.
Desarrollo de software C/C++ utilizando GCC
- Puede encontrar los comandos utilizados en Eclipse CDT para construir el proyecto en «
<workspace>\.metadata\.plugins\org.eclipse.cdt.ui\global-build.log
«. - Configuración de include-paths, library-paths y bibliotecas: Al construir el programa, el compilador necesita los archivos de cabecera para compilar los códigos fuente; el enlazador necesita las bibliotecas para resolver las referencias externas. El compilador busca en las «rutas de inclusión» las cabeceras especificadas en las directivas
#include
. El enlazador busca en los «library-paths» las «bibliotecas» necesarias para enlazar el programa. En GCC, el include-path se especifica mediante la opción-Idir
o la variable de entornoCPATH
. La ruta de la biblioteca se especifica a través de la opción-Ldir
o la variable de entornoLIBRARY_PATH
. La bibliotecalibxxx.a
se especifica a través de la opción-lxxx
(letra minúscula'l'
, sin el prefijolib
y la extensión.a
).
En Eclipse CDT, puede establecer las rutas de inclusión, las rutas de biblioteca y las bibliotecas haciendo clic con el botón derecho del ratón en el proyecto ⇒ Propiedades ⇒ C/C++ General ⇒ Rutas y símbolos ⇒ En las pestañas «Includes», «Library Paths» y «Libraries». Los ajustes son aplicables sólo al proyecto seleccionado.
Para establecer las rutas de inclusión y las rutas de biblioteca para todos los proyectos, establezca las variables de entornoCPATH
yLIBRARY_PATH
. En Eclipse, elija «Ventana» ⇒ Preferencias ⇒ C/C++ ⇒ Construir ⇒ Entorno.
Alternativamente, copie las cabeceras y las bibliotecas en los directorios del sistema, y puede omitir las rutas de inclusión y las rutas de biblioteca. - OpenGL con GLUT: Para Cygwin, necesita instalar gcc, g++, gdb, make (bajo la categoría Devel) y opengl, freeglut (bajo la categoría graphics). Las cabeceras
gl.h
,glu.h
,glut.h
se guardan en$cygwin\usr\include\w32api\GL
. Utilice#include <GL/gl__.h>
para incluir las cabeceras. Las bibliotecaslibopengl32.a
libglu32.a
ylibglut32.a
se guardan en$cygwin\lib\w32api
. Para especificar estas bibliotecas en la vinculación, utilice-lopengl32
-lglu32
-lglut32
opciones (sin el prefijolib
y la extensión.a
). - OpenGL con SDL: Descargue SDL desde http://www.libsdl.org. Elija Bibliotecas de desarrollo ⇒ win32 ⇒ mingw32 ⇒ Descomprimir. Copie el directorio de cabeceras
SDL
(bajoinclude
) en$cygwin\usr\include\w32api
; copie todos los archivos de biblioteca enlib
en$cygwin\lib\w32api
; copie la biblioteca de tiempo de ejecuciónSDL.dll
(bajobin
) enWindows/System32
. En su programa, incluya estas dos cabeceras:#include <SDL/sdl.h>
y#include <SDL/sdl_opengl.h>
. Para enlazar, añada estas bibliotecas:-lSDL
-lSDLmain
. - #directiva de comentario pragma: la directiva de comentario pragma, por ejemplo,
#pragma comment(lib, "opengl32.lib")
, se utiliza a menudo para incluir una biblioteca concreta (igual que la opción-l
). Esta directiva dependiente del sistema funciona en el compilador de Windows, pero NO en GCC. - Error «multiple target patterns»: Hay un problema con GNU make (en
$Cygwin\bin\make.exe
). Reemplazado por esta copia @ http://www.cmake.org/files/cygwin/make.exe. - fflush(stdout): La biblioteca gcc utiliza E/S en búfer (de acuerdo con la especificación C). La salida sólo se escribe en el flujo de salida después de un carácter de nueva línea. Se puede tirar la salida con un
fflush()
. - El nombre del proyecto no debe incluir la palabra «setup»: Si nombras tu proyecto C/C++ con un nombre que incluya la palabra «
setup
«, entonces el «*setup*.exe
» resultante activará el UAC (User Authorization Control) y requerirá derechos de administrador para ejecutarse. (¡Esto me llevó unas cuantas horas descubrirlo! Intente renombrar un «hello.exe
» a «mysetup.exe
«.)
E/S de archivos en Eclipse
Referirse a Eclipse para la E/S de archivos de Java.
- En el campo «Nombre del proyecto», introduzca «
Deja una respuesta