c++ visual-studio-2013 atl include-path

c++ - Obteniendo el error "No se puede abrir el archivo de inclusión: ''atlbase.h'': No existe tal archivo o directorio" error



visual-studio-2013 include-path (5)

Estoy intercambiando máquinas (entre dos computadoras portátiles con Windows 8.1) y acabo de cargar el proyecto en el que estoy trabajando desde TFS. En una máquina compila, en la otra no lo hace y da el primer error

error C1083: Cannot open include file: ''atlbase.h'': No such file or directory

En ambas computadoras portátiles atlbase.h Visual Studio Ultimate 2013. En la primera computadora portátil, he comprobado dónde está recogiendo atlbase.h y es de C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/atlmfc/include ie desde el directorio de instalación de Visual Studio 2012. En la nueva máquina no tengo instalado Visual Studio 2012, por lo que el directorio C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/atlmfc/include no existe.

Otras personas tienen problemas similares (por ejemplo, la pregunta de Ramilol ) porque están usando Visual Studio Express. Estoy usando Ultimate.

Podría ser un problema de variables de entorno (como lo sugiere raj raj ), pero mis rutas de directorio de inclusión en VC++ Directories son $(VCInstallDir)include;$(VCInstallDir)atlmfc/include;$(WindowsSDK_IncludePath) según sea necesario.

Mi pregunta general es "¿Cómo soluciono esto?" pero también me interesaría saber cómo verifico y establezco el valor de $ (VCInstallDir) ya que C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/atlmfc/include tiene atlbase.h en (así que Estoy desconcertado de por qué no se recoge).

========== EDITAR 1: Regrabación ==========

Permítanme volver a redactar esta pregunta.

He cargado un proyecto de Visual Studio 2013 en una nueva computadora portátil de compilación de TFS. No se error C1083: Cannot open include file: ''atlbase.h'': No such file or directory y da errores como el error C1083: Cannot open include file: ''atlbase.h'': No such file or directory . El archivo atlbase.h está presente en la nueva máquina, en el directorio C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/atlmfc/include .

En las propiedades de mi proyecto, mis rutas de directorio incluyen en VC++ Directories son $(VCInstallDir)include;$(VCInstallDir)atlmfc/include;$(WindowsSDK_IncludePath)

¿Cómo atlbase.h qué están configuradas esas macros, y si no están donde atlbase.h es (es decir, C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/atlmfc/include ) cómo soluciono eso?

========== EDIT 2: Microsoft Visual C ++ Redistributables instalado ==========

Respondiendo a la respuesta de jp2code, la máquina que funciona y la que no tiene una matriz similar de Microsoft Visual C ++ Redistributables instalada como se muestra en la siguiente captura de pantalla (la máquina en funcionamiento a la izquierda):

========== EDIT 3: variables de entorno ==========

En su respuesta, pje explica cómo buscar las variables de entorno. %VCInstallDir% está configurado correctamente en C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/ Pero si hago clic derecho en la línea #include <atlbase.h> , obtengo este error que sugiere que a pesar de que %VCInstallDir% sea Correcto, no es donde está mirando VS:

========== EDIT 4: configuración del kit de herramientas de la plataforma ==========

Otra posibilidad es la Configuration Properties | General | Platform Toolset Configuration Properties | General | Platform Toolset Configuración del proyecto Configuration Properties | General | Platform Toolset , sugerida por manuell en los comentarios y Michael Burr en su respuesta . Para el proyecto, está configurado para configurarse en Visual Studio 2012 (v110) pero la única otra opción que aparece en la lista desplegable es v110_wp80 , que, cuando se selecciona, se convierte en Windows Phone 8.0 (v110) . Si edito manualmente el archivo .vcxproj en el bloc de notas y reabrí el proyecto en Visual Studio Ultimate 2013, la página de propiedades ahora muestra el conjunto de herramientas de plataforma como Visual Studio 2013 (v120) (not installed) .

Si comienzo un nuevo proyecto de la Tienda Windows de C ++, puedo configurar Platform Toolset en Visual Studio 2013 (v120) sin ningún problema, de hecho, es la única opción que aparece en el menú desplegable. (NB: el nuevo proyecto tiene la Target Platform Version establecida en ''Windows 8.1'', y está atenuada, por lo que no puedo cambiarla, mientras que el proyecto defectuoso la tiene configurada en Windows 8).

========== EDIT 5: todo el archivo de configuración del proyecto ==========

En los comentarios, Michael sugiere que "tal vez la publicación de .vcxproj en algún lugar (como una idea en github) pueda ser útil". Lo he publicado here .

========== EDIT 6: desinstalación y reinstalación de Visual Studio 2013 Ultimate ==========

No tiene efecto, el mismo error se repite.


En la nueva máquina no tengo instalado Visual Studio 2012

Bueno, no busques más, ese es tu problema. Su proyecto apunta al conjunto de herramientas VS2012 para construir un proyecto de tienda que se ejecuta en Windows 8.0. Aún puede abrirlo en VS2013 pero solo se puede construir si también tiene instalado VS2012. En otras palabras, debe tener el conjunto de herramientas v110 disponible en la máquina. Usted no

Luego de instalar VS2012, tendrá que volver a apuntar a 8.1 para que se construya con el conjunto de herramientas VS2013 (v120). Haga clic con el botón derecho en el nodo Solución en la ventana Explorador de soluciones y seleccione "Volver a asignar proyectos de la Tienda Windows a Windows 8.1".

Preocúpate un poco de ese portátil, recuerda demasiado acerca de VS2012. Parece que lo tenía una vez instalado pero no se desinstaló correctamente.


Solución posible

  1. Obtener Monitor de proceso
  2. Filtrar por atlbase.h

De esta manera, sabrá exactamente dónde está buscando Visual Studio atlbase.h . El monitor de proceso le mostrará los intentos fallidos de abrir el archivo.

En este punto podrás resolver el problema

  1. hacer enlaces simbólicos (desordenados)
  2. arreglar las rutas de directorio de inclusión (mejor)

Actualizar Aquí es cómo filtra las operaciones de archivos:

No olvide hacer clic en Agregar después de configurar los parámetros del filtro.


Si desea ver el valor de $ (VCInstallDir) o cualquier otra macro de Visual Studio, abra el símbolo del sistema del desarrollador para VS2013 (esto debería haberse instalado con su instalación de VS 2013). En la solicitud, escriba: echo %VCInstallDir% . Esto imprimirá el valor actual de la macro $ (VCInstallDir). Si desea cambiar esto a un directorio diferente, escriba set VCInstallDir=<directory path> , donde <directory path> es la ruta al directorio deseado (probablemente C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/atlmfc/include en su caso).

Espero que esto ayude, salud!

------editar-------
Como nota al margen, es posible que estas macros se hayan importado con el proyecto de 2012 que intentabas cargar y compilar con 2013. Si resulta que fue tu macro $ (VCInstallDir) la que estaba mal, eso explicaría por qué .


Verifique que ambas máquinas tengan instaladas las mismas versiones de C ++ Redistributable.

Vale la pena un tiro, y será fácil de comprobar.


Verifique que la configuración del proyecto "Propiedades de configuración | General | Platform Toolset" sea:

Visual Studio 2013 (v12)

y no algo como "Visual Studio 2012 (v110)