¿Cómo puedo encontrar encabezados duplicados en una solución grande en MSVC ++ 2005 o 2008?

StackOverflow https://stackoverflow.com/questions/411142

Pregunta

En Visual Studio (C ++), ¿hay alguna manera de encontrar fácilmente encabezados duplicados que estén definidos en archivos .cpp?

También estoy tratando de encontrar formas de detectar esta situación:

  • A incluye B incluye C
  • A incluye C
  • = > A no necesita incluir C
¿Fue útil?

Solución

Si desea detectar esta situación, puede agregar esta macro en la parte superior de cada archivo. Sustituya A por el nombre del archivo

#if A_H
#error "Duplicate include"
#else
#define A_H
#endif

Otros consejos

Generalmente, los marca con #pragma una vez, o el macro protector equivalente y deja de preocuparse por eso.

Si está utilizando el compilador de MS, puede poner un mensaje #pragma (IIRC, podría ser una advertencia #pragma o un error #pragma) con el nombre del archivo de encabezado en la parte superior de cada archivo de encabezado y su salida de compilación mostrará la lista de cada uno que se incluye por archivo compilado.

Eso funcionaría mejor para sus archivos de encabezado, ya que los del sistema no se incluirán.

Si desea ver todos los encabezados incluidos, edite las opciones de compilación para incluir / P (preprocesar a un archivo) que no compilará su código, sino que en su lugar redirigirá el preprocesador a un archivo, entonces puede navegar a través de él para ver las declaraciones #include. Tenga en cuenta que estos archivos serán grandes.

PC-Lint (y probablemente otras herramientas de pelusa) pueden indicar archivos de inclusión no utilizados.

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