2008-11-21 11 views
37

Tengo un proyecto en C creado con un archivo MAKE, Eclipse advierte constantemente sobre "Ruta del proyecto no válida: entradas de ruta duplicadas", pero no puedo entender qué demonios quiere que haga. Me gustaría desactivar esta advertencia y continuar con mi vida.Vía de acceso del proyecto no válido de Eclipse CDT

Mi aplicación se compila y funciona bien, sin una sola advertencia, excepto esta. Como soy un desarrollador concienzudo, tengo muchas ganas de solucionar este problema, por lo que tengo los peluches calientes que solo una construcción limpia puede aportar.

+1

Si está utilizando Eclipse 3.7/CDT 8 a continuación, echa un vistazo a la respuesta de Kenneth Evans. Aún no lo he probado, pero se ve bien, si funciona, deja un comentario. –

+0

probado y parece estar funcionando. Debe ser la respuesta aceptada, en mi humilde opinión. – ysap

Respuesta

30

Esto funcionó para mí con Eclipse 3.7.2 y 8.0.2 CDT:

  1. Abrir las propiedades del proyecto | C/C++ Build | Opciones de descubrimiento.
  2. Haga clic en el botón Borrar entradas descubiertas ahora :.
  3. Reconstruir.

Parece ser una nueva característica en CDT 8. He tenido este problema de "Invalid project path: Duplicate path entries" durante años, y aparentemente esta es la nueva solución.

Antes de hacerlo, había rutas duplicadas en C/C++ General | Senderos y símbolos | Incluye pestaña No pude deshacerme de estos. Solo aparecen cuando se selecciona Mostrar valores incorporados, por lo que aparentemente se generan de alguna manera. Después de hacer lo anterior, fueron reemplazados por un conjunto que no tenía duplicados. La única diferencia es que la misma configuración aparece en Assembly, GNU C y GNU C++. Anteriormente eran conjuntos diferentes. Los de Assembly estaban vacíos, por ejemplo.

Hasta ahora, el problema no ha regresado.

+0

Gran respuesta. Otra solución "oculta" a uno de los numerosos problemas que plagan los módulos Discovery/Indexer. El único problema es que no veo una forma de seleccionar proyectos múltiples y realizar la limpieza en todos a la vez (en un espacio de trabajo de 64 núcleos, tengo 64 proyectos por núcleo más algunos ...). – ysap

+0

Gracias, he tenido este problema al usar premake para generar archivos gmake y he encontrado la duplicación oculta en la pestaña Rutas y símbolos. –

+0

Las opciones de descubrimiento parecen estar presentes solo en algunos casos (definitivamente no está presente con autotools). En tal caso, vaya a '.metadata/.plugins/org.eclipse.cdt.make.core /' y borre las rutas incorrectas. –

0

Parece un error en CDT.

Si realmente desea deshacerse de él, debe intentar deshacerse de los espacios en la ruta del proyecto; esto fue sugerido en un resultado de búsqueda para el error. Si eso no funciona, puede intentar abrir el archivo .cproject, donde se encuentran todas las configuraciones de CDT, y buscar una ruta real con entradas duplicadas.

26

Este problema es realmente difícil de manejar. No funciona muy bien.

Esto es aplicable a Eclipse 3.4.1/5.0.1 CDT

De lo que puedo decir, cuando se crea un "/ Proyecto C++ C" dentro de CDT, que tratará de detectar automáticamente las necesidades de inclusión caminos . Gran idea, pero la implementación es horrible.

Si elimina o cambia el nombre de un directorio, el anterior es sobrante. Si cambia el nombre del proyecto, el anterior es sobrante. Cuando Eclipse no puede encontrar ese directorio anterior, le da esa advertencia.

Mi solución es desactivar por completo el descubrimiento automatizado y administrar mis rutas de inclusión manualmente. Necesita esta lista de rutas de inclusión para cosas como ctrl-click (navegación automática a define/functions/files/etc) y sombrear #definir bloques. Construye el índice fuera de esta lista.

Esto es lo que necesita hacer: Haga clic derecho en su proyecto en el explorador del proyecto y vaya a propiedades. Ir a C/C++ Build -> Opciones de descubrimiento Desactive la opción "automatizar la detección de caminos y símbolos"

Ahora vaya a C/C++ General -> Caminos y símbolos Verás bajo la incluye el conjunto de pestaña, C y Los lenguajes C++ con los directorios de autodescubrimiento correspondientes incluyen. Vaya a los 3 idiomas y elimine todo. Abra su archivo MAKE y transcriba sus inclusiones en el idioma correspondiente. Un cambio de nombre de proyecto aún causará que el indexador se rompa. $ {project_name} y otros globales no parecen funcionar. Si tiene problemas, use el botón "Espacio de trabajo" para buscar el directorio que desea incluir, ya que parece funcionar siempre, pero escribirlo manualmente NO lo hace. Presione Aplicar, luego Aceptar. Haga clic derecho en su proyecto, vaya a índice-> reconstruir Reiniciar eclipse.

Esto debería arreglar las cosas para siempre. Cada vez que algo se oculta incorrectamente debido a un bloque #define o #ifdef, es porque esa lista de archivos está desactualizada. También sabrá que la lista no está actualizada si obtiene "inclusiones sin resolver" en las líneas de #include.

Doug Schaefer, con suerte Google indexa esto, encuentra su nombre y soluciona esta terrible implementación. =)

+1

Al igual que una actualización, puede usar la variable $ {ProjName} en lugar del nombre del proyecto real y persistirá a través de un cambio de nombre del proyecto. –

+0

Hola Jeff, después de establecer manualmente las rutas, ¿cómo podemos usar el gdb? sigue colgando en ciertos puntos. –

12

Encontré este informe de error para ayudar a mi problema. Moví algunas rutas de inclusión y no pude deshacerme de las rutas antiguas.

He visto este problema también, las rutas antiguas nunca se eliminan. Para fijar manualmente el archivo tiene que mover/borrar el $ {} projectname archivo .sc encontrado en $ {} del espacio de trabajo /. Metadatos/.plugins/org.eclipse.cdt.make.core

https://bugs.eclipse.org/bugs/show_bug.cgi?id=206372

0

Debe verificar si ha definido manualmente un símbolo que eclipse puede deducir de su archivo MAKE. Tengo un proyecto que tiene un archivo MAKE escrito manualmente y el problema se solucionó quitando los símbolos que había agregado manualmente a C/C++ General -> Rutas y símbolos -> Símbolos.

0

No se necesita eliminar .metadata chicos, simplemente borrar todo camino situado en C/C++ Generales ->Caminos y Símbolos ->Símbolos y reemplazarlos en el uso de clic boton pero no dan la ruta manualmente

1

Aquí me acaba de encontrar otra manera de volver a detectar la trayectoria de forma automática:

  1. abierto "Espacio de trabajo Configuración-> C/C++ -> Build -> Configuración -> Descubrimiento"
  2. Encuentra "CDT Construir-en la configuración del compilador [Fragmento]"
  3. Haga clic en "Eliminar las entradas" y "Reset" botón a la derecha
  4. proyectos de reconstrucción y hecho

Esperamos que esto ayude.

Referencia: http://qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html

0

Aquí es una respuesta tardía para Eclipse 4.4 (que no tiene una opción de Descubrimiento).

Eliminar el archivo infoPath del proyecto.Eclipse o el complemento ADT (no estoy seguro de cuál) lo recreará y lo rellenará con las rutas correctas.

Puede encontrar el archivo infoPath del proyecto en <Eclipse workspace>/.metadata/.plugins/com.android.ide.eclipse.ndk/<project>.pathInfo.

que piensan Eclipse o el plugin ADT determina los nuevos caminos de dos lugares: (1) el directorio NDK establecido en virtud de las preferencias de Eclipse, y (2) caminos en Application.mk. Todos esos caminos se convierten en rutas "integradas" en Eclipse.

Véase también How to change built-in C/C++ paths pointing to a deleted android-ndk-r9 installation?

2

Usando Eclipse de Luna y CDT 8,5

He arreglado el problema

  1. Abrir las propiedades del proyecto | C/C++ General | Trayectorias y símbolos
  2. Mire en la pestaña Ubicación de origen, he cambiado el nombre de un directorio y no fue actualizado en esta lista.
  3. Reconstruir
Cuestiones relacionadas