2012-01-31 19 views
6

He instalado el complemento CDT de Eclipse & en Ubuntu recién instalado. La indexación se establece en "Indización rápida", que se recomienda ("Indización completa" parece tener una diferencia marginal).La indexación de Eclipse CDT no funciona para encontrar declaraciones dentro del proyecto

En tantos lugares, si presiono 'F3' ('mostrar declaración') en cualquier nombre class o incluir nombre de archivo, el cursor permanece parado y no conduce a la declaración. Sin embargo, funciona para archivos y símbolos estándar como, stdio.h, std::vector y así sucesivamente.

Por ejemplo, tengo 2 archivos,

/home/myself/Workspace/Project/X/Y/include/file.h 
/home/myself/Workspace/Project/X/src/file.cpp 

yo no soy capaz de ver ninguna declaración de ningún class o las variables que se muestran en file.cpp, que residen en el interior file.h. Incluso presionando 'F3' en #include"file.h", no puedo ir al file.h.

Eclipse Workspace se crea en la carpeta Workspace donde se crea el proyecto C++ en la carpeta Project. Para almacenar la ruta include, he seguido este procedimiento en Eclipse:

Proyecto -> Propiedades -> C/C++ General -> Rutas y símbolos -> Biblioteca y rutas -> Agregar "/ Proyecto/X/Y/include/file.h " (se usaron las pestañas 'Espacio de trabajo' y 'FileSystem')

Pero todavía no hubo suerte. He hecho suficiente búsqueda en internet y SO, pero no pude encontrar nada útil. Tenga en cuenta que, estoy usando eclipse solo para la navegación de código y no para construir el código a partir de ahora.

Respuesta

14

Ok, lo tengo funcionando. En realidad, cualquiera que sea incluye las rutas que he incluido en Paths and Symbols son redundantes y no hacen ninguna diferencia, ya que todo lo que está bajo Workspace/Project se indexará.

La solución es muy extraña y está relacionada con escalabilidad, que llegué a saber de this link. En Eclipse ir a,

Ventana -> Preferencias -> C/C++ -> Editor -> Escalabilidad -> "Activar el modo de escalabilidad cuando ..."

Establecer un número tan grande como 500000 y presione "OK". ¡El problema fue resuelto! Para mi caso, el valor real establecido era 5000 y el archivo fuente que estaba viendo era de 16k+ líneas.

+1

Es una mala señal cuando tienes un archivo C++ tan grande. Intente refaccionar un poco solo para ayudar a su cordura. –

+2

¡Gracias, ayudó! – StarDust

+3

@ Captain Lepton: o simplemente es un signo de que está utilizando contenedores SWIG (o código autogenerado), o encabezados de controladores de dispositivos de hardware, o 'sqlite.h', o ... usted obtiene el punto. No es una mala señal _per se_. – Tibo

Cuestiones relacionadas