Tengo una gran base de código C++ existente. Normalmente, los usuarios de la base de código editan la fuente con gvim, pero nos gustaría comenzar a usar las ingeniosas funciones de IDE en Eclipse. La base de código tiene una extensa jerarquía de directorios, pero el uso de los archivos fuente incluye directivas sin rutas debido a algún vudú que utilizamos en nuestro proceso de compilación. Cuando vinculo el origen a mi proyecto en Eclipse, el indexador se queja de que no puede encontrar ningún archivo de encabezado (porque no especificamos las rutas en nuestras inclusiones). Si agrego manualmente los directorios del área de trabajo a la ruta de inclusión, entonces todo funciona maravillosamente, pero obviamente no es posible agregar cientos de directorios manualmente. ¿Habría un método simple para decirle a Eclipse que busque en algún lugar del proyecto los archivos de inclusión sin tener que agregarlos uno por uno? Si no es así, ¿alguien puede sugerir un buen punto de partida, como qué clases extender, escribir un complemento para escanear el proyecto en la creación/modificación y agregar programáticamente todos los directorios a la ruta include?Buscar todo el proyecto para incluye en Eclipse CDT
Respuesta
Esta característica ya se ha aplicado en la corriente actual de desarrollo CDT y estará disponible en CDT 6.0, que será lanzado junto con Eclipse 3.5 en junio de 2009.
Básicamente, si usted tiene una #include y la cabecera existe un archivo en algún lugar de su proyecto, entonces CDT podrá encontrarlo sin la necesidad de configurar manualmente las rutas incluidas.
Si necesita la característica ahora, puede descargar e instalar la última versión de desarrollo de CDT.
Eclipse Bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=21356
Último CDT 6.0 compilaciones: http://download.eclipse.org/tools/cdt/builds/6.0.0/index.html
La forma en que maneja CDT construir caminos es por mirar el archivo XML .cdtbuild en la base de su directorio de proyectos (que podría ser un nombre diferente en las ventanas ... no estoy seguro)
En esto debe vea algo como
<option id="gnu.c.compiler.option.include.paths....>
<listoptionValue builtIn="false" value=""${workspace_loc:/some/path}$quot;" />
<listOptionValue ... />
...
</option>
aquí es donde se colocan todas las rutas de compilación que configure en la interfaz gráfica de usuario. Debería ser bastante fácil agregar todos los directorios a esto usando un simple script perl para recorrer el proyecto y generar todas las entradas de listOptionValue.
Esto obviamente no es el método ideal. Pero soy curioso, de qué sistema de compilación estás migrando, si está basado en make, deberías ser capaz de obtener eclipse para usar tus archivos make.
Dependiendo de la cantidad de vudú que esté haciendo en su proceso de compilación, es posible que Eclipse no pueda analizar correctamente sus archivos fuente, especialmente si tiene encabezados con nombres similares para diferentes archivos fuente. Si realmente quieres sacar el máximo partido de Eclipse, necesitarás asegurarte de que con la configuración que tengas no confundas al analizador. Personalmente, recomendaría tener un diseño simple y un proceso de construcción.
En cuanto a la pregunta en cuestión, agregar los directorios uno por uno es casi la mejor opción.
De la lectura de la this Eclipse CDT FAQ entry, suena como Eclipse puede generar automáticamente una lista de directorios de inclusión si se inicia su construcción desde dentro de Eclipse y si su acumulación salidas de los gcc
/g++
comandos antes de iniciar realmente gcc
/g++
. Puede cambiar la forma en que Eclipse inicia una compilación yendo a Propiedades del proyecto, luego seleccionando la categoría Compilación C/C++ y buscando la opción Compilar comando en el lado derecho del cuadro de diálogo.
- 1. CMake generada Proyecto Eclipse CDT no Tiene sistema incluye
- 2. Indicador Eclipse CDT - cómo resolver sin resolver incluye
- 3. Eclipse CDT C/C++: incluye un archivo de encabezado de otro proyecto
- 4. Cómo convertir el proyecto de VisualStudio a Eclipse CDT
- 5. Para registrar, o no, todo el proyecto de Eclipse?
- 6. Linux Eclipse CDT profiler
- 7. Refactoring adicional para Eclipse CDT
- 8. Importación de un proyecto CMake en Eclipse CDT
- 9. refresh eclipse cdt system includes
- 10. Buscar en Eclipse a través del proyecto
- 11. eclipse CDT bibliotecas glib error de inclusión
- 12. Comprensión de los proyectos CDT de Eclipse
- 13. Configuración de Eclipse CDT para compilación remota
- 14. Usando Eclipse buscar y reemplazar todo para intercambiar argumentos
- 15. Eclipse CDT Integrados Incluir directorios
- 16. Eclipse CDT - Crear subdirectorio dentro de un proyecto
- 17. Eclipse CDT y Source Control
- 18. Uso de eclipse CDT sin crear un proyecto
- 19. Excluir completamente ciertos directorios del proyecto CDT de Eclipse
- 20. Buscar llamadas de métodos en el proyecto Eclipse
- 21. Usando el analizador Eclipse CDT fuera de CDT
- 22. Error de Eclipse CDT C++
- 23. Vía de acceso del proyecto no válido de Eclipse CDT
- 24. Eclipse CDT: cómo hacer referencia a terceros incluye a través de una ruta relativa
- 25. Complemento TODO/FIXME para Eclipse
- 26. Personalización de include-guard para Eclipse CDT
- 27. Eclipse CDT: hacer una reconstrucción de proyecto cuando se reconstruyó una biblioteca construida en otro proyecto
- 28. Buscar clases no utilizadas en un proyecto de Java Eclipse
- 29. Tutorial básico? Makefiles en Eclipse CDT
- 30. Configurar Eclipse CDT para usar g ++
Acabo de probar esto, funciona de la manera más incómoda. Está analizando el registro de compilación y agrega rutas incluidas desde líneas g ++ -I/some/path a "system includes". Usando el archivo .cproject y agregándolos usted mismo, permita tener versiones en VC. Auto-Discovery no. – Evgeny