2011-05-23 19 views
103

Cuando construyo mi solución de C++ en Visual Studio me duele que falta el archivo xxxxx.pch. ¿Hay alguna configuración que me falta para recuperar los encabezados precompilados?¿Cómo arreglar el archivo .pch que falta en la compilación?

aquí es el error exacto para la integridad:

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

tiene que proporcionar más información . ¿Qué error exactamente estás obteniendo? ¿cómo está configurado su proyecto actualmente? –

+0

Con solo una reconstrucción simple, todo solucionó mi problema. – Deqing

Respuesta

292
  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 parte superior izquierda de las páginas de propiedades, seleccione Todas las configuraciones en el menú desplegable.
  4. Abra la C/C++ de estructura y seleccione encabezados precompilados
  5. encabezado precompilado: Seleccione Usar (/ Yu)
  6. Rellene el campo Archivo de encabezado precompilado. Estándar es stdafx.hy
  7. Click bien

  8. Si usted no tiene stdafx.hy en su archivos de cabecera lo puso allí. Edite para #incluir todos los encabezados que desee precompilados.

  9. Deja un llamado stdafx.cpp archivo 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 Encabezado precompilado Crear (/ Yc). Esto solo enlazará con el archivo stdafx.cpp.
  12. Put # include "stdafx.h" en la parte superior de todos los archivos de origen.

Lucky 13. Cruce los dedos y pulse Construir.

+41

No sabía que stdafx.cpp debería tener una configuración diferente. Gran respuesta. – expert

+3

Esta debería ser la respuesta aceptada, ya que a la otra le faltan los pasos 10 y 11. ¡Gracias! – JBentley

+1

Esta es una respuesta más básica que la mía. Los pasos 1-7 son necesarios para que PCH funcione, pero el mensaje de error de la pregunta indica que esos pasos ya se han realizado. OTOH, asume un solo archivo 'stdafx.pch', mientras que' 'xxxxx.pch' de la pregunta sugiere un problema más complejo (configuración multi-PCH). – MSalters

55

encabezado precompilado (PCH) uso es un proceso de dos pasos.

En el primer paso, compila un archivo de resguardo (En VS200x generalmente se llama stdafx.cpp). Este archivo auxiliar incluye indirectamente solo los encabezados que desea precompilar. Típicamente, una pequeña cabecera (normalmente stdafx.h) enumera cabeceras estándar tales como <iostream> y <string>, y esto, entonces se incluye en el archivo de código auxiliar. Compilar esto crea el archivo .pch.

En el paso 2, el 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 falla el paso 1. ¿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 PCH. Si xxxxx.cpp está presente, y es un archivo de código auxiliar, entonces es probable que falte su opción de compilador /Yc:.

+13

** entonces es probable que su falta/YC: opción del compilador ** Por cierto, la opción se encuentra en el Proyecto Páginas de propiedades/Propiedades de configuración/C-C++/encabezados precompilados – wil

6
  1. Haga clic derecho en el proyecto y seleccione el elemento de menú Propiedades
  2. Goto C/C++ -> encabezados precompilados
  3. seleccione No utilizar encabezados precompilados
+0

Esto funcionó para mí.. Había borrado "stdafx.cpp", luego cuando lo agregué de nuevo, este error no desaparecería hasta que apagara los encabezados precompilados. El proyecto es muy pequeño de todos modos, por lo que no es como si fuera una gran diferencia para la velocidad. – Contango

+2

** 4. Seleccione 'Crear (/ Yc)' ** (para restaurar y luego usarlo de nuevo) – Bitterblue

18

Fix:

  1. Asegúrate de que tienes xxxxx.cpp en su proyecto

  2. Compilar xxxxx.cpp con la bandera/YC (Crear encabezado precompilado)
    (botón derecho del ratón en xxxxx.cpp -> propiedades -> Encabezados precompilados ->crear)

  3. Compilar todos los demás archivos con/bandera Yu (Uso encabezado precompilado)
    (clic derecho en el proyecto -> propiedades -> encabezados precompilados ->uso)

1

Sí, puede ser eliminado 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.

-1

Try Construir> Limpiar solución, y luego construir> Generar solución. This funciona para mí.

0

Si todo es correcto, pero este error está presente, se necesita comprobar en la siguiente sección **** archivo vcxproj:.

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

En mi caso hubo un nombre incorrecto de una configuración: sólo se primera palabra.

0

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

+0

Sí, pero la pregunta original tenía que ver con VS2008, no con VS2015. ¿Tienes alguna certeza de que esto resolvería el problema del PO? –

+0

Independientemente de la versión de VS que sea, el problema aún ocurre en diferentes compilaciones. Solo inténtalo y mira si funciona para lo que sea que quieras enfrentar. – glover12

0

que estaba buscando el archivo PCH iOS tienen el mismo problema, si tienes aquí como yo también, la solución que he encontrado es en la limpieza de los datos derivados; Cerrar Simulador (s), vaya a Preferencias Xcode -> Ubicaciones -> ir a la ruta del archivo de datos derivado, cerca xCode, elimine los archivos en la carpeta de datos derivado, re lanzamiento y saludos :)

Cuestiones relacionadas