2008-12-02 19 views
66

Comprobé una copia de una aplicación C++ de SourceForge (HoboCopy, si tiene curiosidad) y traté de compilarla.¿Dónde busca Visual Studio los archivos de encabezado C++?

Visual Studio me dice que no puede encontrar un archivo de encabezado particular. Encontré el archivo en el árbol de fuentes, pero ¿dónde debo ponerlo para que se encuentre al compilar?

¿Hay directorios especiales?

Respuesta

87

Visual Studio busca encabezados en este orden:

  • En el directorio fuente de corriente.
  • En los directorios de inclusión adicionales en las propiedades del proyecto (en C++ | General).
  • En el estudio visual C++ Incluir directorios bajo Herramientas → Opciones proyectos y solucionesDirectorios de VC++.

En su caso, agregue el directorio en el que se encuentra el encabezado a las propiedades del proyecto.

+2

Una buena respuesta, pero debo agregar, que en Visual Studio 2003, debería mirar "Herramientas | Opciones | Directorios de VC++" no "Herramientas | Opciones | Proyectos y Soluciones | Directorios de VC++". – Graf

+33

el preprocesador en VS 2010 busca en el directorio actual solo si se utiliza la sintaxis de inclusión entrecomillada (por ejemplo, #include "whatever.h"). El uso de corchetes angulares (por ejemplo, #include ) omite el directorio actual (http://msdn.microsoft.com/en-us/library/36k2cdd4(v=VS.100).aspx) –

+4

En Visual Studio 2010 y versiones posteriores, el "directorios C++ estándar" ya no se encuentra en herramientas-> opciones y se encuentra en una hoja de propiedades global: http://blogs.msdn.com/b/vsproject/archive/2009/07/07/vc-directories.aspx –

10

Si el proyecto viene con un archivo de proyecto de Visual Studio, entonces ya debería estar configurado para encontrar los encabezados por usted. De lo contrario, deberá agregar el directorio de archivos de inclusión a la configuración del proyecto haciendo clic con el botón derecho en el proyecto y seleccionando Propiedades, haciendo clic en "C/C++" y agregando el directorio que contiene los archivos de inclusión a "Incluir directorios adicionales" editar cuadro.

6

Intenté agregar esto como un comentario a la publicación de Rob Prouse, pero la falta de formato lo hacía ininteligible. En Visual Studio 2010, el cuadro de diálogo "Herramientas | Opciones | Proyectos y Soluciones | Directorios VC++" informa que "Edición de Directorios VC++ en Herramientas> Opciones ha quedado obsoleta", proponiendo que use el Administrador de propiedades contra-intuitivo.

Si realmente, realmente desea actualizar la configuración predeterminada $ (IncludePath), se tiene que cortar la entrada correspondiente en uno de los archivos XML:

\ Archivos de programa (x86) \ MSBuild \ Microsoft cpp \ v4.0 \ plataformas Win32 \ \ \ PlatformToolsets V100 \ Microsoft.Cpp.Win32.v100.props

o

\ archivos de programa (x86) \ MSBU ILD \ Microsoft.Cpp \ v4.0 \ Plataformas \ x64 \ PlatformToolsets \ \ v100 Microsoft.Cpp.X64.v100.props

(Probablemente no recomendado por Microsoft.)

1

Existe una pregunta más reciente lo está golpeando mejor el problema pidiendo How do include paths work in Visual Studio?

No está consiguiendo reveló la manera de hacerlo en las versiones más recientes de VisualStudio

  • en el proyecto actual sólo (como la pregunta se establece aquí también) así como
  • para cada nuevo proyecto como predeterminado

El segundo es lo que explica la respuesta de Steve Wilkinson, que es, como se suponía a sí mismo, no lo que Microsoft recomendaría.

que decir que la Shortway aquí: hágalo, pero lo hacen en el User-Directorio en

C: \ Users \ Usuario \ AppData \ Local \ Microsoft \ MSBuild \ v4.0

en el archivo XML

Microsoft.Cpp.Win32.user.props

y/o

Microsoft.Cpp.x64.user.props

y no en el directorio C: \ archivos de programa - de directorio, donde se espera que el fabricante del archivo no modificada de Microsoft para residir.

Luego, hazlo como lo hace VisualStudio y todo es normal.

Para obtener más información sobre por qué hacerlo, mi respuesta es there.

4

Parece haber un error en la comunidad de Visual   Studio   2015. Para un proyecto de 64 bits, la carpeta de inclusión no se encuentra a menos que esté en la configuración de win32 Lista de carpetas adicionales.

+2

¿Tiene un enlace a este error o una referencia al mismo, por favor? –

Cuestiones relacionadas