Pregunta

Tengo una gran base de código c ++ existente. Por lo general, los usuarios de la base de código editan la fuente con gvim, pero nos gustaría comenzar a usar las ingeniosas funciones IDE en Eclipse. La base de código tiene una extensa jerarquía de directorios, pero el uso de archivos fuente incluye directivas sin rutas debido a algún vudú que usamos en nuestro proceso de compilación. Cuando vinculo la fuente a mi proyecto en Eclipse, el indexador se queja de que no puede encontrar ningún archivo de encabezado (porque no especificamos rutas en nuestras inclusiones). Si agrego manualmente los directorios del espacio de trabajo a la ruta de inclusión, entonces todo funciona maravillosamente, pero obviamente agregar cientos de directorios manualmente no es factible. ¿Habría un método simple para decirle a Eclipse que busque en cualquier parte 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, para escribir un complemento para escanear el proyecto en la creación / modificación y agregar programáticamente todos los directorios a la ruta de inclusión?

¿Fue útil?

Solución

Esta característica ya se implementó en la secuencia de desarrollo de CDT actual y estará disponible en CDT 6.0, que se lanzará junto con Eclipse 3.5 en junio de 2009.

Básicamente, si tiene un #include y el archivo de encabezado existe en algún lugar de su proyecto, entonces CDT podrá encontrarlo sin la necesidad de configurar manualmente las rutas de inclusión.

Si necesita la función 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
Últimas compilaciones de CDT 6.0: http://download.eclipse.org/tools/cdt/builds/6.0.0 /index.html

Otros consejos

La forma en que CDT gestiona las rutas de compilación es mirando el archivo .cdtbuild xml en la base del directorio de proyectos (puede ser un nombre diferente en Windows ... no estoy seguro)

En esto deberías ver algo como

<option id="gnu.c.compiler.option.include.paths....>
<listoptionValue builtIn="false" value="&quot;${workspace_loc:/some/path}$quot;" />
<listOptionValue ... />

...
</option>

aquí es donde se colocan todas las rutas de compilación que configura 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 listOptionValue.

Obviamente, este no es el método ideal. Pero tengo curiosidad, de qué sistema de compilación está migrando, si está basado en make debería poder obtener eclipse para usar sus archivos de make.

".". .22._How_do_I_get_rid_of_them.3F "rel =" nofollow noreferrer "> esta entrada de Eclipse CDT FAQ , parece que Eclipse puede generar automáticamente una lista de directorios de inclusión si inicia su compilación desde Eclipse y si su compilación genera el Comandos gcc / g ++ antes de realmente iniciar gcc / g ++ . Puede cambiar cómo Eclipse inicia una compilación yendo a Propiedades del proyecto, luego seleccionando la categoría de compilación C / C ++ y buscando la opción de Comando de compilación en el lado derecho del cuadro de diálogo.

Dependiendo de la cantidad de vudú que esté haciendo en su proceso de compilación, Eclipse puede no ser capaz de analizar correctamente sus archivos fuente, especialmente si tiene encabezados con nombres similares para diferentes archivos fuente. Si realmente quieres aprovechar al máximo Eclipse, tendrás que asegurarte de que con cualquier configuración que tengas no confundirás el analizador. Personalmente, recomendaría tener un diseño simple y un proceso de compilación.

En cuanto a la pregunta en cuestión, agregar los directorios uno por uno es prácticamente su mejor opción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top