2010-06-09 30 views
50

Estoy usando Eclipse con código C++ a través de recursos vinculados en Linux. El índice de análisis de código parece estar dañado (la definición Goto coloca el cursor cerca, pero no en la definición). La actualización de recursos no lo soluciona, ni tampoco reinicia Eclipse.Limpiar índice Eclipse, no está sincronizado con el código

¿Hay alguna manera de vaciar el índice y reconstruirlo?

Respuesta

66

Haga clic derecho en su proyecto, vaya al submenú Índice y seleccione "Reconstruir", "Actualizar con archivos modificados" o "Actualizar todos los archivos".

No sé la diferencia entre esas tres opciones, pero una de "Actualizar con archivos modificados" o "Actualizar todos los archivos" generalmente me la arregla.

Además, estoy seguro de que ya ha hecho esto, pero asegúrese de que está ejecutando la última versión de Eclipse CDT. Las versiones actuales parecen tener una indexación mucho más confiable que las versiones anteriores.

+2

En el pasado, a veces también tuve que cerrar y volver a abrir el proyecto para que esto sucediera por algún motivo. –

+1

"Actualizar todos los archivos" funcionó bien. "Reconstruir" no ayudó. – tutejszy

0

¿Intentó agregar -clean a la línea de comandos para el ejecutable eclipse?

57

Otra forma de fuerza bruta es cerrar Eclipse, abra su directorio de área de trabajo y vaya a ".metadata \ .plugins \ org.eclipse.cdt.core" y elimine todo allí.

Esto finalmente ayuda si "Refrescar todos los archivos" y los amigos no funcionaron.

+8

La respuesta elegida no me solucionó, pero esta sí. – Erandros

+15

/! \ Esto borrará la mayoría de las configuraciones CDT también. Si esas configuraciones son importantes para el indexador (por ejemplo, incluyen rutas de acceso y macros) y no parecen defectuosas, conserve los archivos XML y limpie solo los archivos PDOM. – Tobu

+0

@Tobu - no parece haber ningún archivo XML en la ruta especificada, solo .pdom. Las rutas de inclusión están en el archivo .cproject. Es seguro eliminar todo en el \ org.eclipse.cdt.core y, en algunos casos, es necesario cuando el indexador tiene información obsoleta. – CarlH

28

De http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg10390.html, las diferencias entre "Reconstruir", "Actualización con los archivos modificados" o "refrescar todos los archivos":

Reconstruir: Obras para proyectos enteros, solamente. Borra el índice e indexa los archivos desde cero. Cuando se cancela, deja un índice parcial vacío o .

Actualizar con archivos modificados: funciona en un recurso selección. Comprueba en los archivos individuales si la marca de tiempo o el scanner-config se ha cambiado y actualiza el índice de los archivos cambiados.

Actualizar todos los archivos: funciona en una selección de recursos. Actualiza los archivos seleccionados en el índice. El índice no se borra, es seguro cancelar la operación.

+2

Si bien esta no es una respuesta a la pregunta, esto aún fue útil. – Axle

+1

Esta descripción coincide con lo que esperaría, pero no coincide con lo que realmente veo del comportamiento de Eclipse. Para mí, "Refrescar todos los archivos" solucionó el problema, pero "Reconstruir" no lo solucionó. Esto no tiene ningún sentido si "Rebuild" realmente elimina el índice y lo vuelve a crear desde el principio. – Ben

17

Ir a su proyecto properties -> C++ general -> Indexer.

  • hacer esto con 'project specific settings',
    (o en 'Configure Workspace Settings...').
  • Deseleccionar 'Enable Indexer' marque Apply.
  • Seleccione 'Enable Indexer' pulse Apply.

Esto debería eliminar por completo y reconstruir el índice.

8

Ninguno de los anteriores funcionó para mí (Eclipse Indigo), el índice sigue roto y se niega a reconstruir correctamente.Hasta que se aplica este:

http://slsam2.blogspot.com/2012/02/eclipse-cdt-index-not-working.html

La parte crucial del puesto relacionado es la siguiente:

Eclipse ya no se trata a su proyecto como un proyecto de C++. Elija el menú File/New/Convert to a C/C++ project. Lleva un tiempo indexar el código fuente.

Todavía me pregunto cómo Eclipse puede dispararse incontrolablemente en el pie de esa manera. Sospecho que la instalación de paquetes adicionales puede desencadenarlo. Quizás soporte de JavaScript en mi caso.

+0

También funciona para mí. – Nei

+0

Mira, el problema con los enlaces es que pueden quedar obsoletos como el tuyo ... – user2646234

+0

@ user2646234 ver la edición –

0

Eclipse ya no trata su proyecto como un proyecto de C++. Elija el menú Archivo/Nuevo/Convertir a un proyecto C/C++. Lleva un tiempo indexar el código fuente. funcionó para mí

+0

Por favor, haga una comenta en la respuesta de Pavel en lugar de repetir la solución. – whoan

0

Empecé probando Josh Kelleys y mmmmms sin ninguna suerte, pero finalmente lo solucioné revisando mis rutas de inclusión.

Una forma de verlos está en el Explorador de proyectos, expanda el proyecto y debe haber una entrada "Incluye". Dentro de eso, busca un pequeño triángulo de advertencia amarillo en cada ruta de inclusión. Si ese triángulo está presente, el eclipse probablemente no reconozca la ruta.

Las rutas de inclusión se editan haciendo clic con el botón derecho en "Su proyecto" en el Explorador de proyectos, luego seleccione "Propiedades" -> C/C++ General -> Rutas y símbolos -> Incluye.

Veo tres opciones de idioma, Ensamblaje, Gnu C, Gnu C++. Elija la correcta antes de comenzar a agregar rutas (probablemente Gnu C++). Después de agregar todas las rutas, -> Aplicar -> Aceptar y reconstruir el índice si se le solicita.

Mis caminos erróneos del espacio de trabajo parecían /carpeta MyProject/MiProyecto cuando se supone que es MiProyecto/carpeta.

Para mí, la vista de "Problemas" siempre es lenta de actualizar, incluso después de reconstruir el índice. Para asegurarse de que el error aún está presente, haga doble clic en la entrada de problemas para que Eclipse abra/vuelva a cargar el archivo en cuestión. Esto a menudo me parece necesario para actualizar la vista de "Problemas".

Realmente no sé si fue un eclipse o mi SCM lo que lo estropeó. De todos modos, espero que ayude a alguien!

Uso Luna y compila con un archivo MAKE externo.

3

borrar única el archivo .pdom bajo .metadata.plugins \ org.eclipse.cdt.core ayude, me dieron el indexador atornillado después de actualizar a Neon.2 Neon.3 y esto parece resolver el problema . (este comentario ya existe arriba pero no puedo confirmarlo allí).

Cuestiones relacionadas