2011-12-23 13 views
8

Estoy trabajando en un proyecto y me sigo preguntando cómo se supone que debo importar archivos de un directorio diferente. Aquí es cómo algunos de mis archivos están organizados:incluyendo archivos de encabezado de diferentes directorios?

-stdafx.h 
-core/ 
-->renderer.cpp 
-shapes/ 
-->sphere.h 
-->sphere.cpp 

cómo puedo acceder a la stdafx.hshapes/sphere.h y de la core/renderer.cpp?

+0

¿qué compilador estás usando? –

+0

Microsoft Visual Studio 2010 –

+0

Tenga cuidado con las siguientes sugerencias para usar las notaciones '../'. Consulte [¿Cuáles son los beneficios de una ruta relativa para un encabezado] (http://stackoverflow.com/questions/597318/). –

Respuesta

7

Hay muchas maneras. Puede #include "../stdafx.h", por ejemplo. Más común es agregar la raíz de su proyecto a la ruta de inclusión y usar #include "shapes/sphere.h". O tener un directorio separado con encabezados en include path.

+0

¿cómo puedo agregarle una raíz? –

+0

Está en algún lugar de la configuración.Como Dave señala, es una opción '/ I', pero lo que estás buscando probablemente sea algo en la configuración del proyecto o como se llame, no has visto Visual Studio por un tiempo. –

1

Puede utilizar rutas relativas:

#include "../stdafx.h" 
#include "../shapes/sphere.h" 

o añadir el directorio del proyecto a su compilador ruta de inclusión y hacer referencia a ellos como normal:

#include "stdafx.h" 
#include "shapes/sphere.h" 

Puede utilizar el /Icommand line option para añadir el ruta o establecer la ruta en la configuración de su proyecto.

+0

¿cómo agrego el directorio del proyecto? Lo siento, soy nuevo en C++ –

+0

Ya no tengo Visual Studio (hace más de un año que no lo uso). Sin embargo, ** [esta página] (http://www.steptools.com/support/stdev_docs/help/settings_vc10.html) ** tiene una captura de pantalla que muestra exactamente dónde se debe agregar la ruta en la configuración del proyecto. –

0

Una (mala) forma de hacerlo es incluir una ruta de acceso relativa al archivo de encabezado que desea incluir como parte de la línea #include. Por ejemplo:

incluyen "cabeceras/myHeader.h"

incluyen "../moreHeaders/myOtherHeader.h"

La desventaja de este enfoque es que se requiere para reflejar la estructura de directorios en tu codigo. Si alguna vez actualiza su estructura de directorio, su código ya no funcionará.

Un mejor método es decirle a su compilador o IDE que tiene varios archivos de encabezado en otra ubicación, para que se vea allí cuando no pueda encontrarlos en el directorio actual. Esto generalmente se puede hacer configurando una "ruta de inclusión" o un "directorio de búsqueda" en la configuración de su proyecto IDE.

En Visual Studio, puede hacer clic derecho en su proyecto en el Explorador de soluciones y seleccionar "Propiedades", luego la pestaña "Directorios de VC++". Desde aquí, verá una línea llamada "Incluir directorios". Agregue sus directorios de inclusión allí.

En Code :: Blocks, vaya al menú Proyecto y seleccione "Opciones de compilación", luego la pestaña "Buscar directorios". Agregue sus directorios de inclusión allí.

Usando g ++, puede usar la opción -I para especificar un directorio de inclusión alternativo.

g ++ -o principal -I/fuente/incluye main.cpp

Lo bueno de este enfoque es que si alguna vez cambia de estructura de directorios, es suficiente con cambiar una sola compilador o entorno IDE en lugar de cada archivo de código

Cuestiones relacionadas