¿Cuál es la diferencia entre "Incluir directorios" y "Incluir directorios adicionales"?


94

En las propiedades de configuración de mi proyecto, debajo de los "directorios VC ++" hay una entrada para "Incluir directorios". Pero en la opción "C / C ++", hay otra entrada llamada "Directorios de inclusión adicionales". Lo mismo sucede con los directorios de bibliotecas.

¿Cuál es la diferencia entre estas dos entradas?

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Respuestas:


48

Esta es la incomodidad que se introdujo en VS2010. La configuración de Directorios VC ++ solía estar ubicada en Herramientas + Opciones, Proyectos y Soluciones, Directorios VC ++. Configuraciones globales que se aplicaron a todos los proyectos que se crearon en la máquina. Todavía está allí, pero señala que ahora debe cambiarlo en la configuración de su proyecto. Un efecto secundario de la revisión del motor de compilación en VS2010, que permite compilar con msbuild. Eliminar la configuración por proyecto habría sido lógico, pero eso rompería demasiados proyectos existentes.

Como tal, probablemente sea mejor tratar la configuración de Directorios de VC ++ como la predeterminada de la máquina. El instalador de VS lo preestablece automáticamente. Juegue con él solo si necesita un orden de búsqueda de directorio inusual, colocando las ubicaciones personalizadas al final. Muy inusual hacerlo.

Sin embargo, funciona. Y finalmente se aprovechó. Potenciar la configuración del conjunto de herramientas de la plataforma en VS2012 y versiones posteriores. Compilador diferente, enlazador diferente, directorios #include diferentes, ruta de búsqueda del enlazador diferente. Modificado con un solo ajuste, agradable.


3
Hmmm ... es cierto que las opciones gloabl se guardan en esto - pero esta es la hoja de propiedades Microsoft.Cpp.Win32.usery sólo esto. Si edita la entrada "Directorios VC ++" cuando tiene el proyecto activo u otra hoja de propiedades, entonces el cambio se mantendrá en el .vcxprojarchivo o en el .propsarchivo respectivo y no será global ni para todo el usuario.
Martin Ba

25

La directorios de inclusión corresponde a la variable de entorno INCLUDE.

La configuración de directorio que se muestra en la ventana son los directorios que Visual Studio buscará incluyen archivos a los que se hace referencia en sus archivos de código fuente. Corresponde a la variable de entorno INCLUDE.

Mientras que los directorios de inclusión adicionales se pasan a través de un argumento de línea de comando (es decir, la \Iopción).


19

CONFIGURACIÓN INCLUYE CAMINOS

Directorios de VC ++: incluir directorios

  • este valor se hereda de la variable de entorno de INCLUDE Windows que se define fuera de Visual Studio
    • las variables de entorno pueden ser: globales para la computadora o tener alcance a nivel de usuario
    • Las variables de entorno INCLUDEy LIBse crean cuando se instala el SDK de Microsoft Windows con Visual Studio .

C / C ++: directorios de inclusión adicionales

  • es una configuración de nivel de proyecto ... tendrá que definir este valor para cada proyecto en su solución
  • este valor se puede conservar en el control de origen

NOTAS ADICIONALES

Cual debo usar?

La decisión de utilizar directorios de inclusión o directorios de inclusión adicionales dependerá del proceso de desarrollo de su organización. En mi opinión, es más importante:

  • que puede recrear de manera consistente y confiable el entorno de desarrollo (piense: entregar el código fuente a otro desarrollador)
  • para los desarrolladores dentro de una organización, use un enfoque coherente

Una nota sobre las macros

  • Las macros de configuración del proyecto de C ++ (que no deben confundirse con la #definedirectiva de preprocesador de C ++ ) heredan contenido de diferentes fuentes. Macros como ...
    • $(Include)heredar sus valores de las variables de entorno de Windows
    • $(OutDir)heredar sus valores de Visual Studio IDE

REFERENCIAS

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.