2009-07-06 15 views
12

Soy nuevo en Eclipse-CDT, estableciendo un nuevo proyecto por primera vez. Estoy tratando de hacer referencia a Boost sin hardcoding una ruta absoluta.Eclipse CDT: cómo hacer referencia a terceros incluye a través de una ruta relativa

He incrementado mi carpeta de espacio de trabajo, p./home/user/workspace/boost_1_39_0

Estaba esperando agregar un directorio de inclusión que apunta a esa carpeta en relación con el área de trabajo, pero Eclipse no hará eso, parece que solo quiere señalar a los pensamientos en/home/user/workspace/[MyProjectNameHere]

¿Algún consejo? No parece tener sentido copiar Boost en la carpeta de mi proyecto, porque luego aparece en Eclipse y Eclipse quiere construirlo (seguro, I podría excluirlo).

  • Alex

Respuesta

11

Al añadir una ruta de inclusión de archivos en el proyecto CDT (Propiedades del proyecto/C/C++ general/Caminos y símbolos), hay 3 botones para buscar una ubicación:

  • Variables ...
  • espacio de trabajo ...
  • archivo s ystem ...

Si presiona el botón Espacio de trabajo ..., la ruta será relativa al espacio de trabajo/proyecto. Si selecciona el botón Variables ..., podrá incorporar variables como ${WorkspaceDirPath}. Las variables también pueden hacer referencia a variables de entorno, lo que podría ser útil si desea que se haga referencia a una única instalación de boost desde proyectos que puedan residir en cualquier lugar de su máquina.

Si incorpora variables en la ruta, asegúrese de que está marcada la opción "Es una ruta de trabajo"; de lo contrario, la variable parece evaluarse cuando presiona "Aceptar" en lugar de permanecer como variable para evaluar en tiempo de compilación.

+0

gracias por señalar esa opción, no quiero poner mi configuración ahí, esas son IDE-wide, quiero configuraciones específicas del proyecto para que otros usuarios puedan obtener el proyecto (y dependencias) del control de fuente y luego construir. –

+0

En Visual Studio 2008 solo agregaría una ruta relativa al proyecto que incluye directorios, p. Ej. "../boost_1_39_0" –

+0

Eclipse parece 'resolver' las rutas completas si simplemente ingresa una ruta relativa, aunque al marcar la casilla de 'espacio de trabajo relativo' podría arreglar eso. Además, ¿a qué te refieres con que la configuración sea IDE? Para mí, parecen estar vinculados al proyecto específico. Pero tenga en cuenta que soy particularmente perceptible en Eclipse. Me parece que falta mucho en Eclipse/CDT (especialmente en la documentación), pero es bastante bueno que usarlo en lugar de un IDE de $ 5000 para el desarrollo integrado es una buena opción la mayor parte del tiempo. –

2

IIRC, que debe ser capaz de clic derecho en el proyecto y entrar en la configuración de C/C++ generales. Desde allí puede agregar directorios de inclusión específicos para el proyecto a referenciar. Aquí hay un par de enlaces que pueden ayudar ...

IBM Article

Eclipse Development

+0

Thx, sí, puedo hacerlo, pero supongo que mi pregunta es cómo hago eso usando una ruta relativa. –

+0

Actualicé la pregunta para reflejar mejor la cuestión de la ruta relativa –

4

que tiene hacer este trabajo más o menos lo que Michael Burr sugirió anteriormente:

Bajo Propiedades del proyecto/C/C++ general/Caminos y símbolos, que añade caminos como este:

$ {ProjDirPath}/../boost_1_39_0

  • Alex
1

estoy usando Eclipse de Luna y encontró la respuesta aceptada que ya no es preciso.Después de un poco de rascarse la cabeza, parece que un par de cambios han ocurrido en los últimos años (por lo menos, esto es lo que ocurrió en mi sistema):

  • Eclipse ya no se expande variables cuando se hace clic en "Aceptar "si tiene no ticked" Es la ruta del espacio de trabajo ".
  • Eclipse no puede encontrar ninguna ruta que esté relacionada con el área de trabajo a menos que se refieran a proyectos en el área de trabajo. Cualquier ruta que no se pueden encontrar por Eclipse se no pueden añadir a la línea de comando de construcción con un -I u otro interruptor correspondiente

Para que esto funcione, por lo tanto, tenía que entrar en ${ProjDirPath}/../whatever como no espacio de trabajo relativo a la ruta, y la variable no se expande hasta el momento de la compilación.

Cuestiones relacionadas