Tengo un proyecto de ejemplo (no la mía), que es en Visual C++ 6. Estoy tratando de convertir a Visual Studio 2008.

El mayor proyecto es el uso de encabezados precompilados. Ahora las preguntas son:

  1. ¿Cuáles son los encabezados precompilados?

  2. Desde el antiguo proyecto es el uso de encabezados precompilados. Yo también voy a utilizar en Visual Studio 2008 (nuevo proyecto). Pero me da errores diciendo que «¿te olvides de incluir stdafx.h», para remediar el problema, me include «stdafx.h» en cada archivo de código fuente. Que funcionó a la perfección. Pero la edad de proyecto no fue incluida «stdafx.h» en cada archivo? Entonces, ¿cómo puedo optar por incluir «stdafx.h» en cada archivo de código fuente. Porque no todas las fuentes de archivo de los archivos de inclusión definidos en el «stdafx.h», sólo unos pocos no. ¿Cómo se hace eso?

EDICIÓN: ¿CÓMO PUEDO EXLCUDE ALGUNOS ARCHIVOS DE UTILIZAR EL ENCABEZADO PRECOMPILADO?

InformationsquelleAutor akif | 2009-08-18

3 Comentarios

  1. 55

    ¿Cuáles son los encabezados precompilados?

    A menudo fuente de C++ archivos de incluir los encabezados de bibliotecas externas. En Windows se incluyen windows.h. Estos archivos de encabezado puede ser muy grande y se toman un tiempo para procesar. Cada vez que se compila un archivo de C++ el compilador tiene para leer y procesar miles de líneas de estos archivos de encabezado. Pero las bibliotecas externas no cambian y usted puede ahorrar un montón de tiempo si sólo procesar estos archivos una vez y guardar el resultado.

    Un archivo de encabezado precompilado es simplemente un montón de archivos de encabezado que se ha procesado a una forma intermedia que posteriormente pueden ser utilizados por el compilador de nuevo y de nuevo.

    Encabezados precompilados en Visual C++

    En Visual C++ es costumbre #include todos, de no cambiar los archivos de encabezado en stdafx.h. Usted, a continuación, indicar al compilador para crear el archivo de encabezado precompilado stdafx.pch al compilar stdafx.cpp que no hace nada, pero incluyen stdafx.h. Si desea utilizar el archivo de encabezado precompilado en otro .cpp archivo tiene que incluir stdafx.h como el primer archivo de inclusión y el indicar al compilador que utilice stdafx.pch para su archivo de encabezado precompilado.

    Si obtiene un error acerca de la no inclusión stdafx.h simplemente tienes que indicar al compilador que no utilice un archivo de encabezado precompilado para el archivo de origen. (O puede incluir stdafx.h.)

    De encabezado precompilado de cada una de los archivos de origen

    Visual C++ le permite controlar la configuración de compilador para todo el proyecto y para cada uno de los archivos. Para acceder a cada una de las propiedades de seleccionar el archivo de origen en el explorador de soluciones, haga clic derecho y seleccione Propiedades desde el menú de contexto. Las opciones para los encabezados precompilados se encuentran en Propiedades de Configuración de => C/C++ => Encabezados Precompilados. Si se modifican estos valores es posible que desee hacer esto para todas las configuraciones (por ejemplo, de Depuración y Liberación).

    Cuando se utiliza encabezados precompilados tendrá un valor para todo el proyecto que indica al compilador que utilice stdafx.pch para el encabezado precompilado. El stdafx.cpp tendrá una configuración individual que indica al compilador que genere stdafx.pch, y si usted tiene algunos archivos de origen que no incluye stdafx.h puede establecer ajustes individuales de estos para no usar encabezados precompilados.

    • gracias, eso es lo que yo estaba buscando
  2. 4

    Cuando se compila el código, el compilador tiene que buscar en todos los #incluye los encabezados para saber cómo compilar el código .archivo cpp.

    Con grandes proyectos (o el uso de las bibliotecas como MFC) estos encabezados se pueden obtener enormes, y así tomar un largo tiempo para compilar.

    Debido a que la mayoría de estas cabeceras no cambian a menudo (si alguna vez), usted puede conseguir el compilador «precompilar» ellos – se procesa y guarda su estado en un archivo de encabezado precompilado. La próxima vez que se compila, no necesita leer y compilar todos los encabezados de nuevo, así es mucho más rápido.

    Uno de los requisitos en Visual Studio es que si se utiliza un archivo de encabezado precompilado, debe ser incluido en todos los archivos en el proyecto.

    Si el proyecto es pequeño, o no la construcción a menudo, entonces usted puede simplemente desactivar el «encabezado precompilado» opción (en la configuración del proyecto. Esto se aplica a la todo proyecto). El único efecto que conseguirás es que se puede compilar más lentamente. O dejar la opción habilitada y sólo tiene que añadir #include «stdafx.h» como el primer incluir en cada archivo.

    • Mal, ¿por qué en MSVC6 no tengo que incluir el archivo de encabezado precompilado en cada archivo???
    • Él(Jason Williams) es el adecuado. stdafx.h no será incluido sólo en aquellos archivos que no estén utilizando cualquier material incluido en stdafx.h por ejemplo, archivos de encabezado de windows. De lo contrario, mirar de cerca, stdafx.h puede ser incluido a través de algunos otros incluyen indirectamente.
    • es incorrecto en las que se indica que «[o]ne requisito en Visual Studio es que si se utiliza un archivo de encabezado precompilado, debe ser incluido en todos los archivos en el proyecto.» Falso. Usted puede optar o archivos individuales (ausencia de la /Y interruptor); si no, tendría un tiempo difícil mezcla de C y C++ archivos de origen en un proyecto.
  3. 0
    1. Ver MSDN
    2. Por lo general. usted necesita include «stdafx.h» en cada archivo cpp. El punto es que ellos están precompilados, y usted no necesita preocuparse de que no todos ellos son utilizados en algunos de hormigón archivo.

Dejar respuesta

Please enter your comment!
Please enter your name here