c++ visual-studio precompiled-headers pch

c++ - ¿Cómo arreglar el archivo.pch que falta en la compilación?



visual-studio precompiled-headers (9)

Cuando construyo mi solución de c ++ en Visual Studio me quejo de que falta el archivo xxxxx.pch. ¿Hay alguna configuración que me falta para recuperar los encabezados precompilados?

aquí está el error exacto de integridad:

Error 1 fatal error C1083: Cannot open precompiled header file: ''Debug/xxxxx.pch'': No such file or directory


  1. Haga clic con el botón derecho en el proyecto y seleccione el elemento del menú de propiedades
  2. Ir a C / C ++ -> Encabezados precompilados
  3. Seleccione No usar encabezados precompilados

  1. Haga clic derecho en su proyecto en el Explorador de soluciones.
  2. Haga clic en Propiedades en la parte inferior del menú desplegable.
  3. En la esquina superior izquierda de las páginas de propiedades, selecciona Todas las configuraciones en el menú desplegable.
  4. Abra el árbol C / C ++ y seleccione Encabezados precompilados
  5. Encabezado precompilado: selecciona Usar (/ Yu)
  6. Complete el campo Archivo de encabezado precompilado. El estándar es stdafx.h
  7. Haga clic en Aceptar

  8. Si no tiene stdafx.h en sus archivos de encabezado, póngalo allí. Edítelo para #incluir todos los encabezados que desee precompilar.

  9. Coloque un archivo llamado stdafx.cpp en su proyecto. Ponga #include "stdafx.h" en la parte superior y nada más.
  10. Haga clic derecho en stdafx.cpp en el Explorador de soluciones. Seleccione Propiedades y Todas las configuraciones nuevamente como en el paso 4 ...
  11. ... pero esta vez seleccione Crear encabezado precompilado (/ Yc). Esto solo se vinculará al archivo stdafx.cpp.
  12. Ponga #include "stdafx.h" en la parte superior de todos sus archivos fuente.

Lucky 13. Cruza los dedos y pulsa Build.


El uso del encabezado precompilado (pch) es un proceso de dos pasos.

En el paso uno, compila un archivo de resguardo (en VS200x generalmente se llama stdafx.cpp ). Este archivo auxiliar incluye indirectamente solo los encabezados que desea precompilar. Normalmente, un encabezado pequeño (generalmente stdafx.h ) enumera encabezados estándar como <iostream> y <string> , y esto se incluye en el archivo de resguardo. Compilar esto crea el archivo .pch.

En el paso 2, su código fuente actual incluye el mismo encabezado pequeño del paso 1 que el primer encabezado. El compilador, cuando encuentra este encabezado especial, lee en su lugar el archivo .pch correspondiente. Eso significa que no tiene que (re) compilar esos encabezados estándar cada vez.

En su caso, parece que el paso 1 falla. ¿El archivo de resguardo aún está presente? En su caso, eso probablemente sería xxxxx.cpp . Debe ser un archivo compilado con /Yc:xxxxx.pch , ya que ese es el indicador del compilador para indicar que es el paso 1 del proceso de PCH. Si xxxxx.cpp está presente, y es un archivo stub, es probable que falte su opción /Yc: compilador.


Estaba buscando el archivo PCH de iOS que tiene el mismo problema, si llegaste aquí como yo también, la solución que encontré fue borrando datos derivados; Cierre Simulator (s), vaya a xCode prefs -> locations -> vaya a la ruta del archivo de datos derivados, cierre xCode, elimine los archivos en la carpeta de datos derivados, re launch y vitore :)


Fijar:

  1. Asegúrate de tener xxxxx.cpp en tu proyecto

  2. Compile xxxxx.cpp con el indicador / Yc ( Crear encabezado precompilado)
    (haga clic derecho en xxxxx.cpp -> propiedades -> encabezados precompilados -> crear )

  3. Compila todos los demás archivos con / Yu flag ( Usar encabezado precompilado)
    (haga clic derecho en proyecto -> propiedades -> Encabezados precompilados -> usar )


Pruebe Build> Clean Solution, luego Build> Build Solution. This funciona para mí


Sé que este tema es muy antiguo, pero estaba lidiando con esto en VS2015 recientemente y lo que me ayudó fue eliminar las carpetas de compilación y volver a compilarlo. Esto puede haber sucedido debido a tratar de cerrar el programa o un programa que paraliza / congela VS durante la construcción.


Sí, se puede eliminar con las opciones / Yc como otros señalaron, pero lo más probable es que no necesites tocarlo para solucionarlo. ¿Por qué está recibiendo este error en primer lugar sin cambiar la configuración? Es posible que haya ''limpiado'' el proyecto y luego trate de compilar un solo archivo cpp. Obtendría este error en ese caso porque el encabezado del precompilador ahora falta. Simplemente construya todo el proyecto (incluso si no tiene éxito) y luego compile cualquier archivo cpp y no obtendrá este error.


Si todo está bien, pero este error está presente, es necesario verificar la siguiente sección en el archivo ****. Vcxproj:

<ClCompile Include="stdafx.cpp"> <PrecompiledHeader Condition=

En mi caso, había un nombre incorrecto de una configuración: solo la primera palabra.