viernes, 18 de enero de 2008
Publicado por Tecnonucleo @ 7:00  | Eclipse / CDT
Comentarios (7)  | Enviar
En Linux, cuando se utiliza el plug-in CDT para programar con Eclipse en C++, luego de compilar podemos ver el listado de errores (si es que los hubiera) remarcados en rojo en la línea de código en la cual se produjo. Lo mismo sucede para los warnings pero estos se marcan en amarillo de forma predeterminada. Esta funcionalidad es posible gracias al parser de errores incluido en CDT, que se encarga de interpretar la salida de texto generada por el compilador GCC (más específicamente por G++ que es el compilador de C++ incluido en el set de compiladores GNU llamado GCC). Un problema que tuve cuando comencé a utilizar CDT fue que los warnings eran marcados incorrectamente como errores por Eclipse. Luego de mucho buscar por la Web, pude entender el porqué de este comportamiento: yo estoy utilizando una versión en español de Ubuntu Linux, y por lo tanto la salida de errores y warnings de GCC es en español por defecto. Esto no parece caerle muy bien mucho al CDT, que se limitaba a mostrar cualquier salida como un error, porque no es capaz de entender que la palabra "advertencia" equivale a "warning". No encontré versiones del parser de errores específicas para el idioma español, por lo que enfoqué la solución a lograr que el GCC mostrara sus mensajes en inglés en lugar de español. Esto se puede lograr seteando la variable de entorno LC_ALL de la siguiente manera: LC_ALL = C Pero esto afecta la configuración de todo el sistema, por lo que conviene limitar el cambio solo para la compilación y el enlazado, utilizando las opciones que nos ofrece el Eclipse CDT de esta forma:
  1. Cargar en Eclipse nuestro proyecto C++
  2. Menú "Project" -> "Properties"
  3. Ir a la sección "C++ Build" -> "Environment"
  4. Click en el botón "New"
  5. En el campo "Name" ingresar LC_ALL
  6. En el campo "Value" tipear la letra C
  7. Darle Ok a ambas ventanas y eso es todo
Como un beneficio extra, obtener los mensajes del compilador en inglés nos va a facilitar las cosas a la hora de buscar información en Internet acerca de esos errores que a veces nos complican la vida, ya que buscando el error traducido al español no va a ser muy fructífero y lamentablemente GCC no dispone de una codificación numérica para sus errores y warnings.

Tags: Eclipse, CDT, C++, errores, GCC, idioma

Comentarios
Publicado por Invitado
lunes, 31 de agosto de 2009 | 10:11
Gracias por la información.

Me has resuelto el problema.
Publicado por Tecnonucleo
martes, 01 de septiembre de 2009 | 7:50
Qué bueno. Me alegro.
Salu2.
Publicado por Invitado
viernes, 23 de octubre de 2009 | 6:54
Muchas gracias por la información. Ya me había dado cuenta de que era el parser de errores, porque lo desactivé y el programa compilaba bien, pero jamás me hubiera imaginado la razón...

Je, en la oficina nos hemos partido de la risa con el error xD
Publicado por Tecnonucleo
viernes, 23 de octubre de 2009 | 7:37
Si, es bastante rebuscada la resolución. Por eso me decidí a ponerlo en el blog.
Saludos.
Germán Blando.
Publicado por Javier
viernes, 06 de enero de 2012 | 12:38

Muchas gracias por la solución.

Actualicé mi ubuntu de 10.10 a 11.10 y me ha cambiado el idioma del gcc, por ende, el eclipse no me tomaba los warnings como warnings sino como errores.

Saludos

Publicado por [email protected]
domingo, 25 de marzo de 2012 | 22:09

Hola, ¡¡¡muchisimas gracias por publicar la solucion!!! ademas de arreglarme el parser de errores me arreglo tambien el indexado lo cual corrigio el autocompletar (code completion) que no me funcionaba en absoluto. Tengo ubuntu 11.10 y actualice desde ubuntu 10.10 y me paso lo del compilador gcc en idioma español ¿no sabes si hay forma de setearlo para que este todo en ingles? Muchisimas gracias otra vez (tenia un dolor de cabeza terrible pero ahora estoy saltando en una pata de la felicidad xD)

Publicado por Invitado
miércoles, 02 de mayo de 2012 | 2:49

Me dolía la cabeza de tanto pensar que podía ser. Un día entero buscando la solución. Te lo agradezco.