Pregunta

El seguimiento de este pregunta:

Cuando hago include <iostream>.
Sucede que incluye muchos archivos de /usr/include .Un grep "\usr\include" más g++ -E prog.cpp contados a alrededor de 1260 entradas ;).

Es su forma de control, incluyendo a varios archivos?
Plataforma:Linux
G++ versión:4.2.4

¿Fue útil?

Solución

No, <iostream> los incluye porque depende de ellos directamente, o que es dependencias dependen de ellos.

No hay nada que puedas hacer al respecto.

Puede (dependiendo de su compilador) limitar el efecto que esto tiene en los tiempos de compilación mediante el uso de encabezados precompilados

Otros consejos

Mi sugerencia es que no se preocupe acerca de cómo muchos de los archivos que el compilador está incluido.Se centran más en corrección, robustez, y horario.Si el tiempo de construcción es una preocupación, conseguir un equipo más rápido, construir la noche a la mañana, salir a pasear, o dividir el código en pequeñas unidades de traducción.Unidades de traducción debe ser lo suficientemente pequeño como para contener código que no cambian con frecuencia. Los cambios son MALOS.

La fundación del sistema de construcción es compilar sólo los archivos que han cambiado.Si su proceso de desarrollo está funcionando correctamente, el tiempo de construcción residirá más y más en la vinculación de fase a medida que el proyecto crece.

Si el tiempo de compilación es todavía largo, a ver si tu compilador soporta encabezados precompilados.En general, este es el método por el compilador para almacenar todas las declaraciones y definiciones en una forma más eficiente.

#include <iostream> cuando es necesario utilizar corrientes. Eso debería definir algunas cosas que necesita. La cantidad de actividad que necesita para hacer esto es una cuestión de calidad de aplicación. Se podría eliminar archivos de /usr/include, pero eso sería romper cosas.

Realmente dudo que sea incluida 1260 archivos. Es casi seguro que la mayoría de ellos son entradas duplicadas que no cargan nada, pero no se podan desde la salida -E.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top