Estoy buscando una herramienta (preferiblemente, un plugin de Visual Studio) que muestre todos los archivos incluidos en un archivo dado y muestre todos los archivos incluidos por esos archivos, y así sucesivamente.¿Cómo puedo ver el gráfico C/C++ #include fácilmente?
Respuesta
Doxygen, con la ayuda de Graphviz, puede hacer eso. Primero necesita editar un archivo de configuración. Esto no será fácil la primera vez que lo haga, pero después no se necesita mucha edición.
En realidad, es simple en la mayoría de los casos: utilice la GUI de Windows del Asistente de Doxygen para generarla o desde la línea de comando ejecute 'doxygen -g' para generar un' Doxyfile' predeterminado y luego asegúrese de tener los valores 'INCLUDE_GRAPH' y 'INCLUDED_BY_GRAPH' establecido en' SÍ'. Es posible que deba ejecutar Doxygen un par de veces y verificar el resultado para ajustar los parámetros. –
No en sus preferencias, pero doxygen lo hace bastante bien.
http://www.codeproject.com/KB/applications/includefinder.aspx
Esto no es un VS plug-in, pero puede ser un motor de arranque para su propia herramienta. Por lo que pude ver, solo lee proyectos de VC6, los VS más nuevos tienen un formato XML fácil de analizar. Lo que necesita son las rutas de inclusión predeterminadas para que la herramienta pueda encontrar los archivos incluidos. Alternativamente, podría proporcionar un cuadro de configuración para él en la GUI como entrada del usuario.
No exactamente lo que quiere, pero el compilador de Visual Studio (cl.exe) tiene una opción /showIncludes
que le mostrará un árbol de los incluye al compilar un archivo.
Si desea esta información para un solo archivo, puede hacer clic derecho en el archivo en el Explorador de soluciones, seleccionar "Propiedades" y en la sección "Línea de comandos" simplemente agregar/mostrarIncluir a "Opciones adicionales" . (Tenga en cuenta que estoy usando VC++ 2005, por lo que puede ser diferente para las versiones más recientes).
La salida que obtiene es un poco ... intrincada, pero muestra lo que se incluye y en qué orden.
Por cierto, la misma característica en GCC y el compilador Intel C++ (mis versiones al menos) es -H
.
Si está usando Visual Studio 2010 puede usar el nuevo Visualization and Modelling Feature Pack de Microsoft, que tiene una característica para generar un gráfico de inclusión. Sin embargo, esto solo está disponible a través de un subíndice de MSDN.
Si es un paquete de características tan útil como parece, esta publicación merece al menos 100 votos positivos. –
De las capturas de pantalla, el paquete de características de modelado parece una herramienta de ensueño. Sin embargo, no solo necesita una suscripción de MSDN sino también una Premium o Ultimate Visual Studio para calificar para la descarga ;-( – BuschnicK
Y generalmente NO funciona para proyectos de C++. –
Primero, cinclude2dot.pl es una secuencia de comandos perl que analiza el código C/C++ y produce un gráfico de dependencia #include como un archivo de puntos para la entrada en graphviz.
http://www.flourish.org/cinclude2dot/
Si no desea seguir el camino de ese tipo de herramienta manual, a continuación, las manos hacia abajo por el ganador ahora es en mi opinión una herramienta conocida como "IncludeManager" de Profactor.
http://www.profactor.co.uk/includemanager.php
Hay una versión de prueba gratuita, y es impresionante. Es un plug-in para Visual Studio que está totalmente integrado, así que haga doble clic en algo aquí lo lleva al lugar donde está incluido allí.
Tooltip mouseovers le ofrece toda la información que le gustaría, y le permite profundizar, eliminar subárboles enteros que no le interesan, ver representaciones que no sean gráficos, recorrer una lista de coincidencias para esto y aquello , es maravilloso.
Si es rápido al respecto, puede refactorizar la estructura #include de proyectos grandes antes de que se agote la prueba.Aun así, no cuesta mucho, alrededor de $ 35 por licencia.
Por lo que hace, es casi perfecto. No solo # incluye gráficos, sino también las dependencias entre proyectos de archivos compartidos, el impacto en los tiempos de compilación, las propiedades detalladas en las grillas, perfecto.
IncludeManager parece que hace el truco fácilmente, y es de bajo costo. Le daré una oportunidad. – Boinst
Puede probar el método sugerido por este Stack Overflow answer:
Hay una C/C++ -> Proyecto avanzado ajuste "muestra incluye". Eso generará el árbol. Se asigna al compilador switch /showIncludes
- 1. ¿Cómo puedo comparar el código C fácilmente?
- 2. ¿Cómo puedo ver fácilmente el resultado de una declaración de Template Haskell?
- 3. ¿Cómo puedo usar "ver" GDB?
- 4. ¿Cómo probar el código fácilmente?
- 5. ¿Cómo puedo mejorar el rendimiento de 'include() s' en PHP?
- 6. ¿Cómo puedo ver el SQL ActiveRecord genera?
- 7. cómo puedo ver el plan de ejecución
- 8. ¿Ver el complemento de gráfico de dependencia de clases?
- 9. Cómo hacer que CC-Tray funcione
- 10. ¿Qué es call/cc?
- 11. ¿Cómo reordenar fácilmente TabControl?
- 12. PHP Mail, CC Field
- 13. ¿Cómo puedo ver una visualización de un gráfico dinámico de llamadas para un programa .NET?
- 14. LaTex: ¿cómo funciona el comando include?
- 15. Continuación (call/cc) en el Esquema
- 16. ¿Cómo puedo ver un NSError?
- 17. Detalles de call/cc
- 18. ¿Cómo visualizar fácilmente una matriz?
- 19. cómo #include en javascript?
- 20. ¿Puedo usar fácilmente Lisp sin Emacs?
- 21. ¿Cómo cambian DP y CC en Piet?
- 22. mountainlion abril compilar carente de 'CC'
- 23. ¿Cómo puedo filtrar el gráfico de revisión SVN de Tortoise antes de abrirlo?
- 24. ¿Cómo puedo simular fácilmente un método estático en Java (jUnit4)
- 25. ¿Cómo puedo obtener fácilmente un TextReader desde un XDocument?
- 26. ¿Cómo puedo mostrar u ocultar fácilmente las vistas en Griffon
- 27. ¿Cómo puedo crear un modelo/UML en Eclipse fácilmente?
- 28. ¿Cómo puedo captar previamente una región de memoria más fácilmente?
- 29. ¿Cómo puedo implementar #include constructs con Flex y YACC?
- 30. ¿Cómo puedo corregir fácilmente los errores de Checkstyle?
dupe? http://stackoverflow.com/questions/42308/tool-to-track-include-dependencies –
Sí. Mi búsqueda fu me ha fallado. – CannibalSmith
@JohanKotlinski, creo que el tema habla sobre el seguimiento de las dependencias no sobre cómo crear un gráfico, una diferencia importante de la OMI. –