web-dev-qa-db-fra.com

Comment puis-je voir le graphique C / C ++ #include facilement?

Je cherche un outil (de préférence, un plug-in Visual Studio) qui afficherait tous les fichiers inclus par un fichier donné et affichera tous les fichiers inclus par ces fichiers et ainsi de suite.

42
CannibalSmith

DOXYGEN , à l'aide de - GRAPHVIZ , peut le faire. Vous devez d'abord modifier un fichier de configuration. Ce ne sera pas facile la première fois que vous le faites, mais aucune modification n'est nécessaire après.

12
kgiannakakis

Tout d'abord, cinclude2dot.pl est un script Perl qui analyse le code C/C++ et produit un graphe de dépendance #include comme un fichier de points pour entrer dans Grapheviz.

http://www.flourreish.org/cinclude2dot/

Si vous ne voulez pas suivre la voie de ce type d'outil manuel, le bon gagnant est à mon avis un outil appelé " includequener" de Profactor.

http://www.profactor.co.uk/includemanagerager.php

Il y a un essai gratuit et c'est génial. C'est un plug-in pour Visual Studio qui est totalement intégré si double en cliquant sur quelque chose sur ici vous amène à l'endroit où il est inclus là-bas.

ToolTip Mouseovers vous donne toutes les informations que vous voudriez, et il vous permet d'explorer Down/UP, supprimez les sous-arbres entiers que vous ne vous souciez pas, affichez des représentations autres que des graphiques, vélo via une liste des matchs pour cela et que c'est merveilleux.

Si vous êtes rapide à ce sujet, vous pouvez refroidir la structure de #include d'un grand projet avant l'essai. Malgré tout, cela ne coûte pas beaucoup, environ 35 $ par licence.

Pour ce que ça fait, c'est à peu près parfait. Non seulement #incluez des graphiques, mais également des dépendances du projet de fichiers partagés, de l'impact sur les heures de construction, des propriétés détaillées dans les grilles, parfaite.

17
Allbite

Pas tout à fait ce que vous voulez peut-être, mais le compilateur Visual Studio (CL.EXE) a une option /showIncludes qui vous montrera un arbre de la convention lorsque vous compilez un fichier.

Si vous souhaitez ces informations pour un fichier unique, vous pouvez cliquer avec le bouton droit de la souris sur le fichier dans l'explorateur de la solution, sélectionner "Propriétés" et dans la section "Ligne de commande", ajoutez simplement/showincllues aux "options supplémentaires". (Notez que j'utilise VC++ 2005, il peut donc être différent des versions plus récentes).

La sortie que vous obtenez est un peu ... compliquée, mais cela vous montre ce qui est inclus et dans quel ordre.

Incidemment, la même fonctionnalité de GCC et du compilateur Intel C++ (mes versions au moins) est -H.

10
icabod

Vous pouvez essayer la méthode suggérée par ceci Réponse de débordement de pile :

Il existe un paramètre de projet avancé C/C++ -> Inclus Inclus ". Cela générera l'arbre. Il mesure le commutateur compilateur / showincludes

6
wip

Si vous utilisez Visual Studio 2010, vous pouvez utiliser le nouveau Fonction de visualisation et de modélisation de Microsoft, qui dispose d'une fonctionnalité pour générer un graphique incluant. Ceci n'est disponible que via un indice de MSDN cependant.

4
Phil Devaney

Pas dans vos préférences, mais Doxygen le fait très bien.

2
Jens Gustedt

http://www.codeproject.com/kb/applications/includefinder.aspx

Ce n'est pas un plug-in vs mais peut être un démarreur pour votre propre outil. Pour autant que je puisse le constater, il ne lit que les projets VC6 uniquement, les nouveaux VS ont un format XML facile à analyser. Ce dont vous avez besoin, les chemins incluent par défaut incluent pour que l'outil puisse trouver les fichiers inclus. Sinon, vous pouvez fournir une boîte de réglages dans l'interface graphique en tant qu'intraction utilisateur.

0
jdehaan