Recientemente cambié de Eclipse 3.6 a Eclipse 3.7, que estoy usando para el desarrollo de C++ en Ubuntu 11.04.Eclipse 3.7 no puede resolver Tipos en C++ Editor
Con la versión 3.6 no tuve grandes problemas, excepto que siempre tuve algunos problemas con el indexador. Ahora con la Versión 3.7 comienza a marcar Tipos no resueltos como Errores. Como el indexador parece no gustarme aún más, mi Eclipse aparentemente no conoce tipos como uint16_t
o size_t
.
En contra de los errores mostrados en el editor de código, mi compilador no tiene problemas para compilar el código y resolver todos los símbolos y tipos, por lo que este parece ser un problema del propio IDE.
¿Hay alguna forma de evitar este comportamiento, porque todos los subrayados rojos hacen que mi código sea cada vez más ilegible ...?
Actualización:
acuerdo con algunas investigaciones y la respuesta de Dennis descubrí que tengo que añadir algunos caminos a Project Properties/ C/C++ General/ Paths and Symbols
Desde que estoy construyendo para un PowerPC en lugar de un objetivo I32 No puedo agregar /usr/include
. En lugar de eso tenía que añadir
/usr/powerpc-linux-gnu/libc/usr/include
para todas las cabeceras estándar (como stdint.h
). También necesitaba:
/usr/lib/gcc/powerpc-linux-gnu/4.5.1/include
para la stdarg.h
.
Ahora casi todos los errores se han ido. La única función que todavía me preocupa es printf
desde el encabezado stdio.h
. Lo busqué y el archivo de cabecera se encuentra dentro de las rutas incluidas. Todavía recibo un error que dice Function printf could not be resolved
. Quiero volver a señalar que estos son solo errores mostrados por Eclipse: la compilación funciona bien.
Así que esto realmente vomita 3 preguntas:
En las propiedades del proyecto de la sección
Paths and Symbols
coherente con la incluyen rutas fuera de la secciónC++ Build/Settings/C++ Includes
. Esto significa que agregar/eliminar una ruta en una de esas secciones afecta directamente la entrada de las otras. Como elC++ Includes
está directamente relacionado con el compilador, me pregunto por qué el compilador puede compilar correctamente (y encuentra los encabezados) incluso si no se le pasan como una ruta de acceso. ¿Hay algún tipo de ruta estándar que utilice GCC, de la que no tengo conocimiento?¿Por qué no encontrar en
printf
eclipse? Se incluye el archivo de cabecerastdio.h
y también contiene la declaración deprintf
, entonces, ¿por qué el Editor de código de Eclipse me dice que no puede resolverlo?¿Por qué los archivos de cabecera divididos tanto? Soy consciente de que necesito otros archivos de encabezado si estoy compilando para otro traget (por ejemplo, PowerPC). Pero, ¿por qué el GNU GCC separa esos encabezados en diferentes directorios?
Estoy usando el compilador powerpc-linux-gnu-g ++. En mi C++ Build Settings también configuré la ruta include include ('/ usr/powerpc-linux-gnu/include/C++/4.5.1'). Esta ruta también agregué rutas al Proyecto Incluir ... lamentablemente nada cambia .. – Toby
'size_t' se define en' 'entre otros. Si #includes en tu archivo, mira si hace desaparecer las líneas rojas. De lo contrario, vea si el '#include ' está subrayado con una línea amarilla. Si es así, desplace el cursor sobre él y si dice que no puede encontrarlo, entonces tiene un problema con la configuración de inclusión. También intente reconstruir el índice para su proyecto. –
Dennis
Hola Dennis, gracias por tu entrada. Acabo de actualizar la pregunta un poco. Quizás puedas ayudarme más. – Toby