Desarrollo con C/C++ en Eclipse

Eclipse es uno de los IDEs más populares y utilizados en el mundo Java. Esto unido a la posibilidad de extender su funcionalidad por medio de plugins ha hecho que exista la posibilidad de poder programar en multitud de lenguajes usando esta herramienta.

El plugin necesario para desarrollar en C/C++ con Eclipse se llama CDT (C/C++ Development Tooling). Veamos como instalarlo.

Instalar Eclipse

El primer paso, evidentemente, es instalar Eclipse. Eclipse viene en forma de un archivo zip/tar.gz que podemos descargar desde la sección correspondiente de su web pulsando sobre Eclipse SDK 3.2.1 y eligiendo el mirror más cercano al lugar donde nos encontramos.

Una vez descargado basta con descomprimir en el directorio de nuestra elección.

Instalar CDT

Descargamos la última versión para nuestro sistema operativo, la 3.1.1 a la hora de escribir estas líneas, desde la página de descargas del proyecto. El plugin no es más que un archivo zip/tar.gz que deberemos descomprimir en la carpeta de Eclipse, añadiendo así los archivos correspondientes a las carpetas features y plugins.

Si ejecutamos Eclipse ahora entre las perspectivas que podemos seleccionar (Window -> Open Perspective -> Other) tendremos una dedicada a C/C++. Para crear un nuevo proyecto seleccionaremos File -> New -> Managed Make C Project o Managed Make C++ Project dependiendo del lenguaje a utilizar. En los proyectos “managed” (gestionados), a diferencia de los standards, Eclipse se ocupa de generar un makefile por nosotros.

Lo único que nos falta es, claro está, un compilador con el que generar los binarios. En Linux normalmente suelen estar instalados gcc y g++. En Windows necesitaremos instalarlos, bien usando MinGW o usando Cygwin.

Instalar Cygwin

Descargamos el instalador desde la web de Cygwin. Al ejecutarlo nos preguntará si queremos instalar desde internet, descargando los archivos necesarios desde la web (Install from Internet); descargar los archivos pero no instalarlos (Download Without Installing) o instalar usando paquetes previamente descargados que tenemos en una cierta carpeta (Install from Local Directory). Si es la primera vez que instalamos Cygwin, seleccionaremos Install from the Internet.

Se nos preguntará también dónde instalarlo (C:\Cygwin está bien, no queremos rutas que contengan espacios), el directorio donde descargar los paquetes y el mirror desde el que deseamos descargarlos. Por último no tendremos más que seleccionar los paquetes a descargar y pulsar siguiente para que comience la descarga e instalación (si no sabes muy bien lo que vas a necesitar, te aconsejaría que descargaras todos los binarios de la rama Base y Devel).

Una vez instalado, añadiremos el directorio bin de la distribución al path, de forma que se pueda llamar a los binarios desde cualquier carpeta de Windows: botón derecho sobre Mi Pc -> Propiedades, Opciones Avanzadas -> Variables de Entorno, en Variables del sistema hacemos doble clic sobre Path y añadimos al final de Valor de variable ;c:\cygwin\bin (el ; es para separar distintas entradas). Podemos comprobar que lo hemos hecho correctamente abriendo una ventana de línea de comandos (Inicio -> Ejecutar, escribimos cmd) y escribiendo gcc -v.

Instalar Simple Indent

A estas alturas de tutorial ya estaríamos listos para empezar a trabajar con C/C++ en Eclipse, pero para hilar fino vamos a instalar otro plugin que nos permitirá dar formato a los archivos .c, .cpp y .h con un simple Ctrl + F; se trata de Simple Indent. Simple Indent utiliza astyle para formatear el código, así que tendremos que tenerlo instalado en el sistema (no os preocupeis porque viene como parte de Cygwin).

La instalación es tan sencilla como descargar el archivo .jar correspondiente y copiarlo a la carpeta plugins de Eclipse. Una vez que iniciemos el programa podremos seleccionar SimpleCodeFormatter en Windows -> Preferences -> C/C++ -> Code Formatter y cambiar las opciones del programa y la ruta donde encontrarlo en Simple Indent Preferences (como es el estilo al que estoy acostumbrado a mí me gusta tener –style=java, pero entre los predefinidos teneis para elegir ansi, gnu, kr y linux; podeis ver más información escribiendo astyle -h en la línea de comandos).

Programando con C/C++ en Eclipse

Como ya dijimos, para crear un nuevo proyecto en C/C++ en Eclipse seleccionamos File -> New -> Managed Make C Project o Managed Make C++ Project. Solo tenemos que escribir un nombre para el proyecto y podemos pulsar sobre Finish, porque normalmente no necesitaremos tocar ninguna de las otras opciones.

Para añadir un nuevo archivo al proyecto pulsamos con el botón derecho sobre el proyecto y seleccionamos New -> Source File o Header File.

La compilación la realiza Eclipse automaticamente, creando un archivo ejecutable en la carpeta Release o Debug, aunque tendremos que indicarle al linker dónde se encuentran las librerías que va a necesitar haciendo clic con el botón derecho sobre el proyecto, Properties -> C/C++ Build -> Tool Settings -> GCC C Linker -> Libraries y añadiendo el directorio “C:\cygwin\lib\gcc-lib\i686-pc-mingw32\3.3.3” en Library search path (seleccionamos Debug en Configuration y volvemos a hacer lo mismo).

Comentarios
  1. Desarrollo con C/C++ en Eclipse…

    Eclipse es uno de los IDEs más populares y utilizados en el mundo Java. Esto unido a la posibilidad de extender su funcionalidad por medio de plugins ha hecho que exista la posibilidad de poder programar en multitud de lenguajes usando esta herramient…

    Responder

  2. Anónimo

    si el compilador necesitase una sintaxis especial, hay alguna forma de poner en alguna accion que se ejecute algun bat y que se pueda leer el log de errores/warnings generados al compilar ?

    Excelente aportacion, en la empresa donde laboro estamos liados con el manejo de proyectos.

    Responder

  3. En C/C++ build, dentro de las propiedades del proyecto, hay una opción para introducir comandos a ejecutar antes y después de la compilación en la pestaña Build Steps.

    No lo he probado pero supongo que podría servirte.

    Responder

  4. Me parece a todo dar !!
    Aunque todavía no lo he probado en toda su capacidad, pero en eso ando, espero no tener ninguna incormidad porque para mí java es de lo mejor del mercado por ahora!
    Cambio y fuera

    Responder

  5. ChAmIn3t

    Tanto para instalar el plugin CDT como para el Simple Ident hay un modo mas sencillo de instalarlo y al menos a mi me ha dado menos problemas. Eclipse dispone de un sistema de instalacion y actualización automatico. Se puede acceder a él a través de Help -> Software Updates -> Find and Install …

    Dado que el plugin CDT pertenece al Eclipse Project, se puede instalar desde cualquiera de los servidores por defecto que tiene y cualquiera de sus mirrors, solo tienes que seguir las instrucciones y seleccionarlo cuando aparezca.

    Para el plugin Simple Ident, después de seleccionar Search for new features to install, pulsad new remote site e introducid http://softwitch.net/eclipseUpdate/ eclipse se conectará al link y obtendrá la información de instalación. A partir de aquí es coser y cantar.

    Un saludo

    ChAmIn3t

    Responder

  6. Tanto para instalar el plugin CDT como para el Simple Ident hay un modo mas sencillo de instalarlo y al menos a mi me ha dado menos problemas. Eclipse dispone de un sistema de instalacion y actualización automatico. Se puede acceder a él a través de Help -> Software Updates -> Find and Install …

    Si, pero eso es un coñazo porque tienes que ponerte a reinstalar las cosas cada vez…

    Responder

  7. Lo ideal es usar Software Updates. Les recomiendo que en caso que quieran mantener su entorno, que utilicen un documento de preparación de entorno, el cual pueden compartir entre los demás participantes. Además, alguien debería ser el encargado de preparación de dicho entorno y puede facilitarles una imagen con el IDE y plugins ya instalados. Así es como nos manejamos en la compañái donde trabajamos. Buen aporte, sigan así, saludos.

    Responder

  8. jorge

    Simple Ident, solo funciona para windows, yo estoy en linux, hay alguna plugin que formatee en Linux. o puedo configurar este plugin para q me funcione en Linux?

    Responder

  9. Simple Ident, solo funciona para windows, yo estoy en linux, hay alguna plugin que formatee en Linux. o puedo configurar este plugin para q me funcione en Linux?

    Prueba con la sección donde dice “GNU Indent, formatter” en la página de plugins de GDT

    Responder

  10. Darkcminor

    Hi, well i have a problem, when i run the c source file, eclipse says

    “Launch failed no binaries”

    Why is this error, i did all as it is described, please help.

    Responder

  11. alfredo

    Tengo ubuntu, instale el EasyEclipse y no puedo compilar.

    Responder

  12. Charli

    Bueno yo estoy comenzando a incursionar en Eclipse por motivos de hacer programación orientada a aspectos, y al parecer unos de los caminos “más fáciles” es este IDE. tengo que instalar las CDT primeramente y ver que me funcione programar funcionalidades en el lenguaje base (C++ con las CDT) pero no he logrado poder ejecutar el simple Hola Mundo porque me da un error de “Launch failed no binaries”. he seguido los pasos que he leido en este “tutorial” pero sigue el error. Además tengo algunas confuciones:
    1) Al añadir el directorio bin de la distribución al path y comprobar si lo hice bien como indicas colocando el comando gcc-v me da el siguiente error “gcc-v” no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.
    2) Cuando indicas hacer clic con el botón derecho sobre el proyecto, Properties -> C/C++ Build -> Tool Settings -> GCC C Linker -> Libraries y añadiendo el directorio “C:\cygwin\lib\gcc-lib\i686-pc-mingw32\3.3.3” en Library search path, en la tool Settings de el Eclipse que tengo no dice
    GCC C Linker sino GCC C++ Linker…es diferente, es lo mismo o es un error de redacción?
    3)Cuando me dices al final “(seleccionamos Debug en Configuration y volvemos a hacer lo mismo)” quieres decir que tu por defecto lo hiciste para Release? porque en mi Eclipse estaba seleccionado ya Debug…por lo que intuyendo, no se si bien, lo hice para Release una vez que lo habia hecho para Debug…y el error “Launch failed no binaries” persiste.

    Responder

  13. carlos

    …hola… acabo de hacer TODO tal cual dice desde el inicio de esta pagina. Pero cuando en c: al hacer lo que dice el manual, aparece: “C:\gcc -v
    “gcc -v” no se reconoce como un comando interno o externo,
    programa o archivo por lotes ejecutable.”

    …y si la carpeta de c:\cygwin… ahi esta. y cuando voy a compilar el “hola mundo”… aparece un error: “Launch failed no binaries”.

    agradezco si alguien me puede ayudar con tal lio…

    gracias.

    Responder

  14. Anónimo

    Yo tambien tengo el mismo problema con el “Lauch failed no binaries”, alguien nos puede ayudar.
    Gracias

    Responder

    • omaley

      Yo tambien tengo ese problema,¿te han dado alguna solucion?

      Responder

  15. Jadomin

    Hola, estoy en mis principios con eclipse, estoy intentando depurar una aplicación en C, el programa se pausa en un determinado momento y tiene que recibir una señal SIGUSR1 para continuar, el problema es que no encuentro como enviarle la señal cuando estoy en pleno debbug, y por lo tanto no puedo seguir depurando, ¿alguien sabe como hacerlo?, gracias.

    Responder

  16. Isvel

    Yo ya probé de todo, inclusive baje el eclipse que es especializado solo para C y C++ y sigue el error de “Launch failed no binaries”, probé también añadiendo el Plug-in y nada, es más estoy trabajando con el eclipse 3.3.1.1 y sigue el mismo error.

    Para que eviten el error de:
    “gcc -v” no se reconoce como un comando interno o externo
    deben comprobar que gcc.exe se encuentre en la carpeta C:\cygwin\bin pero aún así sigue el problema de “Launch failed no binaries”

    Por favor que alguien nos ayude…

    Responder

  17. Lo que tienes que hacer es añadir el directorio en el que está gcc al path. Está explicado en el tutorial.

    Responder

  18. Isvel

    Si ya lo hice, pero nada, que raro.
    ayuda por favor…

    Responder

  19. Super útil. Sabía de la existencia del plugin para desarrollo en C++ pero no del plugin de identado ;).
    Muchas gracias por la info.

    Responder

  20. Tarxo

    Yo tengo el mismo problema.
    Despues de instalar cygwin, en “C:\cygwin\bin” no estaba “gcc.exe”, por tanto, al poner en la consola “gcc -v” me daba el mismo error que al resto.
    Por favor, comprovad si en la carpeta bin teneis o no el archivo “gcc.exe”.

    Yo esta parte la he solucionado,creo.Me instalé el MinGW para ver si así funcionaba, pero seguia dandome el error “Launch failed no binaries”.

    Despues copié el archivo gcc.exe en la carpeta de cygwin y ahora al poner “gcc -v” en la consola me dice:
    “Reading specs from /mingw/lib/gcc-lib/mingw32/3.2.3/specs
    Configured with: ../gcc/configure –with-gcc –with-gnu-ld –with-gnu-as –host=
    mingw32 –target=mingw32 –prefix=/mingw –enable-threads –disable-nls –enable
    -languages=c++,f77,objc –disable-win32-registry –disable-shared –enable-sjlj-
    exceptions
    Thread model: win32
    gcc version 3.2.3 (mingw special 20030504-1)”
    esto es lo que tiene que salir??

    Sigue saliendome el error “Launch failed no binaries”

    Alguien tiene alguna idea para solucionar esto??
    Muchas gracias

    Responder

  21. R@PTOR

    Tengo la solucion al problema del gcc -v que dice que no se reconoce como un comando interno o externo,
    programa o archivo por lotes ejecutable.”
    El problema es que cuando instalaron cygwin no seleccionaron el compilador que está en el package de devel, creo, bueno ahora el eclipse encuentra el compilador, pero tengo otro problema:
    **** Build of configuration Debug for project HolaMundoC ****

    make -k all
    Building file: ../HolaMundo.c
    Invoking: GCC C Compiler
    gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF”HolaMundo.d” -MT”HolaMundo.d” -o”HolaMundo.o” “../HolaMundo.c”
    make: /bin/sh: Command not found
    make: *** [HolaMundo.o] Error 127
    make: Target `all’ not remade because of errors.
    Build complete for project HolaMundoC

    y cuando lo trato de ejecutar me sale lo de no binaries, espero respuesta, gracias, y espero haber solucionado el problema del gcc

    Responder

  22. Begin C++

    Hola, estoy descargando los paquetes Base y Devel en los cuales seleccione todos los binarios de estas ramas. Sin embargo esto tarda demasiado en descargar , hay alguna otra forma de obtenerlos ??

    gracias…..

    Responder

  23. Dexka

    Me dice: “Lauch failed no binaries”

    Responder

  24. eclipse

    me parece una mierda eclipse, launch failed no binaries

    Responder

  25. evanlance

    Yo tambien tengo el problema del “Lauch failed no binaries”

    Responder

    • anonymous

      JAJAJA. No sean newbies lo único que deben hacer es agregar la ruta donde esta el compilador en este caso C:\CYWIN a una variable de entorno, para eso le dan click derecho a mi PC propiedades y luego buscan las variables de entorno. Despues de eso lo va a reconocer el gcc -v

      Responder

  26. pepe

    El “launch failed no binaries” es un bug de CDT. Hay que instalar la última versión de CDT y listo. O usar MinGW y no Cygwin.

    Responder

  27. charrr

    Instalando MinGW me funciona correctamente, antes tb tenia ese problema con el cygwin.
    Ahora tengo otro problema.Me da un warning indicandome “Invalid project path:Include path not found(c:\Qt\4.3.4\include\activeQt”
    Sabeis como se soluciona??

    Responder

  28. Se está quejando de que no existe uno de los directorios que tienes en la lista de carpetas en las que buscar librerías. ¿Existe esa carpeta?

    Responder

  29. charrr

    No, no existe, pero no se donde he cambiado la configuración de eclipse para que me busque ahi.
    Donde deberia cambiarlo y que deberia poner?
    También tengo otro problema, empece a hacer mis primeros programas con Qt siguiendo un manual de la versión 3.2 de Qt, yo tengo instalado la 4.3.2. El caso es q en el primer ejemplo me pone un método llamado setCaption de la clase QWidget… y no me aparece en el desplegable, con el consiguiente error de compilación.¿Pq sera que no me aparece ese metodo, por la version?
    Siento la parrafada, espero que me solucioneis el tema.Gracias

    Responder

  30. z0lt4r

    Me parece que Eclipse debería desaparecer de la existencia. Es una mierda de proyecto que lo único que hace es molestar al programador.

    ¿Tan difícil sería mantener un repositorio comun de Updates o New features e indicar que PUÑETERA URL tiene, en lugar de diseminarlos por ahí y tener que ir buscando las url’s respectivas por Internet?

    Llevo toda la mañana intentando instalar Hibernate y estoy hasta los mismísimos de probar Siotes y que me diga “XXXX requires org.eclipse.jdt….” o “xxx requires yyy”

    Que sí, que una vez lo tienes todo (después de semanas de buscar las correspondientes páginas para el Update Manager) debe ir cojonudo, pero hasta ahí me parece una auténtica basura..

    Sin ánimo ofender a nadie, pero me parece que para la envergadura que tiene Eclipse deberían replantearse las cosas si pretenden “facilitar” la integración de características externas a su IDE.

    Responder

  31. A ver si esto te vale z0lt4r: Eclipse Plugin Central

    Responder

  32. Maragret

    hola!! 🙁 bueno tengo que aprender a usar eclipse!! para programar en c pero no se nada!!! gracias a quien pueda ayudarme!!

    Responder

  33. norman784

    g++ -v funciona despues de reiniciar el equipo, me pasaba lo mismo.. aun asi me sige saliendo ‘Launch Failed no binaries’, el problema es que antes de Ejecutar hay que compilar, contruir o build en ingles.. despues de eso van a poder ejecutar, el mensaje de error este sale xq no encuentra los binarios de tu proyecto para ejecutarlos, no tiene nada que ver con el mingw, ni con el make, ni nada, simplemente tienes que compilar el projecto

    Responder

  34. Serh

    y donde voy a compilar?? porque he estado buscando y no encuentro el botón. a lo mejor estoy ciego gracias 🙂

    Responder

  35. […] * Instrucciones de instalación y uso de Eclipse CDT (castellano) […]

    Responder

  36. Federico

    acabo de encontrar una página donde explican porque se genera el “Launch failed no binaries” Y y como solucionarlo
    http://www.neverbyte.net/archivo/usando-eclipse-para-desarrollo-c-sobre-windows/

    Responder

  37. ada

    Buenas!
    Por fin podré ejecutar los programas en eclipse!
    Espero no tener problemas!

    Gracias por el manual 🙂

    Responder

  38. manu

    lo que dice federico (la url) esta bien, pero hace falta tener cygwin instalado

    … no digo mas …

    y me sumo a los comentarios de la mayoria

    valla castaña eclipse c++ (Launch failed no binaries)

    en java no pasa esto

    y con los gui comerciales c++ tampoco

    Responder

  39. David Villarreal

    Respecto a los que les aparece “Bynary not found”:

    Recuerden que C++ es un lenguaje compilado mientras que Java es interprete, esto quiere decir que cada modificacion al programa es necesario compilarlo para que se generen los .obj

    Para generar los binarios simplemente tienen que dale clic al icono del martillo para que genere el archivo “Binaries” y tambien el makefile (archivo que se utiliza para compilar con parametros por defecto en linux). Una vez creado esto ahora pueden generar los ejecutables de sus programas

    Responder

  40. darlos

    No os compliqueis en la pagina web de eclipse te puedes descargar un eclipse para C/C++ sin problemas y listo para programar.

    Responder

  41. black

    muy bueno el tutorial, a mi me sirvio en ubuntu con 8.04, cabe aclarar que yo instale los paquetes que nombraste de los repositorios oficiales…

    sigue asi Zootropo

    Responder

  42. black

    lo he vuelto a probar, pero ahora en ubuntu 8.10, y va de maravilla.
    gracias zootropo por compartir tus tips y conocimientos en la red.

    Responder

  43. Sebastian

    Gracias por la ayuda, me sirvio para avanzar un toque…ahora, una pregunta: es muy malo si a pesar de haber hecho todo esto me tira “Launch failed. Binary not found”?? Si sirve de algo, no puedo crear un “Managed C Project”, simplemente me muestra el “C Project”.

    Gracias!!

    Responder

  44. Valeria (arg)

    PARA TODOS LOS QUE TENIAN EL ERROR DE “Launch failed NO binary” yo vengo buscando y tenia el mismo problema qe ustedes!!! Pero es porqe ustedes vienen apretando directamente el Run As! y lo acabo de solucionar.
    Sigan los pasos de arribo, el MinGW instalen (el CYWin no me hizo falta, es horrible) creen un archivo.c con el “hola mundo” por ejemplo y luego presionen el martillo de la barra de herramientas de arriba. y un par de botones al lado del martillo esta la flechita verde, presionen eso, y listo! aparece en la consola de abajo! O una vez qe guardaron el programa, apreten F11 y despues Ctrl + F11

    Suerte con eso!

    Responder

  45. charli

    A cuál martillo te refieres Valeria? Yo tengo Eclipse 3.2 y no veo ninguno…Otra cosa, yo tengo instalado ambos, cygwin y mingw y ambos hacen bien por consola gcc -v, g++ -v, gcc –version y g++ –version, colocando uno a la vez en el Path, no lo he probedo juntos, pero el hecho es que el mingw no me ejecuta los programas, la consola de eclipse sale en blanco despues de darle a Run As -haciendo right-click- sobre el proyecto y con cygwin en el Path -una vez removido el mingw- sí surte efecto el Run As…sabán a qué se debe esto?
    Cómo se podrá solucionar? Y ojo, recuerdo que hace mucho tiempo cuando comencé (no sé qué fecha del pasado año) con esto ambos funcionaron.

    Responder

  46. AnGhL

    Tengo semanas tratando de compilar en eclipse… tube los mismos problemas q los demas … ojala con esto q dijieron me funcione…
    Saludos…

    Responder

  47. me pueden afydar a simular un eclpise en c
    solo con graficos

    Responder

  48. Steven

    Saludos a Todos….. !!!!

    como creo un librería en un subdirectorio especifico y que pueda usarlo en varios proyectos en C

    saludos

    Responder

  49. porferoz

    facil easyeclipse es la forma mas facil de no durar semanas tratando de instalar y configurar eclipse
    gracias a las distros solo pinchar

    Responder

  50. Francisco Toyos

    Necesito en el Makefile saber si se esta compilando en modo Debug o Release.

    Como “parche” defini para el proyecto una variable (environtment) $CFG y se asiga el valor como “Debug” y “Release” y funciona bien.

    Pero esto no debe ser necesario… el Makefile sabe esto, pero no se de donde lo sabe. Alguien me puede revelar el secreto de donde esta esa info.

    Gracias y saludos,

    Responder

Deja un comentario