2011-01-15 39 views
8

Actualmente estoy tratando de compilar un programa simple que incluye dos archivos de encabezado. Los veo en el Explorador de soluciones, donde los incluí a través de "incluir archivos existentes". Sin embargo, cuando ejecuto mi programa, aparece el siguiente error. error fatal C1083: No se puede abrir el archivo de inclusión: 'FileWrite.h': No existe dicho archivo o directorio. El problema es que veo el archivo incluido en la carpeta del encabezado y en el código que he escrito:¿Cómo incluir archivos de encabezado en Visual Studio 2008?

#include "FileWrite.h" 

y luego el resto del código del programa. ¿Hay algo más que hacer para que el compilador pueda ver el archivo de encabezado y vincularlo al archivo .cpp que estoy tratando de compilar?

Respuesta

1

Al incluir los archivos que el compilador busca por primera vez en el directorio actual (el directorio que contiene el archivo de origen .cpp), entonces busca en los directorios de inclusión adicionales. Si FileWrite.h no está en el mismo directorio que su archivo fuente, consulte los directorios adicionales incluidos.

En apariencia página de propiedades del proyecto en el adicionales incluyen directorios y ver si incluyen la carpeta en la que está en FileWrite.h.

10

Hay dos maneras de hacer esto.

1) Sólo para el actual proyecto

Select your project -> properties -> C/C++ -> General -> Additional Include Directories - 
Include your header file directory. 

2) Para todos los proyectos

Tools -> Options -> VC++ Directories -> Include files - Add the header file directory. 

Abstenerse de utilizar 2, ya que sería difícil averiguar las dependencias de un proyecto cuando la compilación en un sistema diferente al tuyo

+0

+1 para comentario sobre dependencias –

15

Si escribe en su código algo así como #include "FileWrite.h", necesita asegurarse de que el compilador pueda encontrar ese archivo. Hay tres opciones:

  • FileWrite.h o bien debe estar en el mismo directorio que el archivo de código fuente (.cpp) o
  • ruta a ese archivo de cabecera debería deberá incluirse Propiedades del proyecto (en C/C++ -> general -> Directorios de inclusión adicionales) o
  • Path podría fijarse en su VisualStudio - añadirlo a Incluir archivos en Herramientas-> Opciones-> Proyectos y Direcciones Soluciones> VC++

Cuál de estas opciones se usará depende de si ese encabezado proviene de este proyecto (primera opción) o de algún otro proyecto (cualquiera de las otras dos opciones).

+0

+1 para * La ruta de acceso a ese archivo de encabezado debe aparecer en las propiedades del proyecto (en C/C++ -> General -> Directorios de inclusión adicionales) * ¡Asombroso! –

1

Dijiste que el archivo está en la carpeta "encabezados". Esto podría significar los encabezados filtro o un directorio de encabezados reales en el sistema de archivos. Al incluir un archivo de su propio proyecto, debe especificar la ruta desde el archivo que está incluyendo. Por lo tanto, si usted tenía algo así:

src/main.cpp 
include/my_object.h 

Se podría utilizar #include "../include/my_object.h" en main.cpp.

Eso es para directorios.Las carpetas que ve en su proyecto se llaman filtros y no tienen ninguna relación con la estructura de directorios de su proyecto a menos que usted lo fuerce. Debe prestar atención a cómo se ve la estructura en el explorador de Windows para determinar qué camino usar en una declaración include.

Cuestiones relacionadas