2009-07-27 13 views

Respuesta

0

veces antes. siempre la misma respuesta - doxygen.

4

doxygen tiene un gráfico de dependencias de archivos como una de sus varias salidas. Puede que no sea exactamente lo que quieres, pero es un comienzo.

+0

Sí, lo menciona en la documentación, pero parece que solo funciona para archivos "documentados", según el manual. En otras palabras, si solo lo ejecuta en un árbol fuente, no generará un gráfico. A cualquier experto en doxigenos le gustaría hablar en este punto? –

+0

Necesita crear un archivo de configuración (o mejor, obtenga Doxygen para que lo haga por usted). Luego necesita editar el archivo para activar algunas funciones. Normalmente no produzco árboles completos, así que no tengo un ejemplo a mano. –

+2

Puede llamarlo para ignorar a los miembros indocumentados. Doxygen definitivamente puede analizar todo, dadas las opciones correctas. Compruebe las siguientes opciones: EXTRACT_ALL HIDE_UNDOC_MEMBERS HIDE_UNDOC_CLASSES También puede ser necesario punto (a través de Graphviz) para generar diagramas de clases y otras cosas útiles. –

1

Sé que no es de código abierto (ni Linux, que no menciona en su pregunta, pero está en sus etiquetas), pero he encontrado que la mejor solución para este problema es ProFactor IncludeManager: fue el mejor Responda a un question I asked que es casi una pregunta exacta de su pregunta, menos el bit de código abierto (de ahí que no haya marcado su pregunta como una trampa para mí).

+0

Parece una muy Herramienta útil. Doxygen es bastante útil para mostrar inclusiones de archivos (especialmente las inclusiones entre árboles de directorios), pero necesita una herramienta como esta para evaluar el efecto de ellos y analizar el efecto de eliminar dependencias innecesarias. –

44

Para los impacientes, que, como yo, sólo quiero una lista de comandos y no Rtfm :) Así que sin más preámbulos (suponiendo que tiene Debian, o su clase) ...

En primer lugar, instale y Doxygen graphviz (que proporciona `dot' para dibujar gráficos dirigidos):

apt-get install doxygen graphviz 

a continuación, decirle Doxygen para generar un archivo de configuración inicial que después podemos modificar manualmente:

doxygen -g 

Esto dará lugar a un nuevo archivo de configuración, llamado Doxyfile, generado en el directorio actual. Luego puede modificarlo con su editor de texto favorito. Asegúrese de establecer los indicadores siguientes a los valores especificados:

HAVE_DOT = YES 
RECURSIVE = YES 
EXTRACT_ALL = YES 
GENERATE_LATEX = NO # Unless you want LaTeX output besides the HTML ... 

También puede ser que desee configurar las dos banderas siguientes para contar Doxygen donde para generar la documentación (que es básicamente un montón de archivos organizados en un directorio estructura):

PROJECT_NAME = Foobar 
OUTPUT_DIRECTORY = /tmp/foobar/doc 

Todo lo que queda es decirle doxygen a hacer su cosa:

cd foobar/src 
doxygen ~/Doxyfile # Assuming you saved Doxyfile in your home directory. 

Ahora, si tienes suerte, puede apuntar su navegador en el archivo /tmp/foobar/doc/html/index.html, seleccione la pestaña "Archivos", y luego haga clic en un archivo de encabezado para ver dos buenos gráficos: uno muestra qué archivos de encabezado están incluidos en su archivo de encabezado (directamente o indirectamente), mientras que el otro muestra qué otros archivos incluyen directa o indirectamente el archivo de encabezado dado.

+2

+1: Ah, hermosa respuesta. Solo estaba tratando de usar Doxygen para generar un gráfico de archivos incluidos y me pregunté por qué no funcionó. Resultó que 'EXTRACT_ALL' no estaba configurado en' SÍ'. –

Cuestiones relacionadas