Outil pour le suivi de #inclure les dépendances
Toutes les bonnes suggestions? L'entrée sera le nom d'un fichier d'en-tête et de sortie doit être une liste (de préférence un arbre) de tous les fichiers, y compris directement ou indirectement.
- Ceci est similaire (mais pas un doublon de l') stackoverflow.com/questions/74326/...
- Il n'est pas sur un "coup de cœur" sont joliment illustré dans gcc, mais msvs ne le fait pas. Donc, nous (je) sommes à la recherche pour n'importe quel outil.
- Pourquoi dois-je continuer de trouver "hors-sujet" questions si utile?
- Cela devrait être compte tenu de la "Commentaire de l'Année"! Comment peut-on modérateur étiquette une question "hors sujet" quand il y a de nombreux sujets, et ainsi de beaucoup d'utilisateurs?
- Je voulais noter qu'il y a beaucoup plus d'outils pour traiter les
#include
dépendances comme rpc-dépendances, iwyu et dep-matrice qui est un assez naïve outil écrit en python. - Les chiffres sont clairs: 123 votes et 62 favoris. Beaucoup de gens de cette façon. Bizarre DONC des normes. Je doute aussi que ces questions auraient les mêmes réponses sur le super-Utilisateur.
- Il y a un nouvel outil appelé
cpp_dependency_graph
, il est encore au début de leur développement, mais j'ai un certain nombre d'améliorations sont prévues. Avertissement - je suis l'auteur de cet outil.
Vous devez vous connecter pour publier un commentaire.
Si vous avez accès à GCC/G++, puis le
M
affichera la liste des dépendances. Il ne fait pas des trucs supplémentaires que les autres outils, mais comme il vient de le compilateur, il n'y a aucune chance qu'il sera ramasser des fichiers à partir de la "mauvaise" la place.-H
donne même un arbre!-MM
saute-têtes système-o
option du compilateur va écrire la sortie dans un fichier au lieu de la sortie standard stdout.stderr
au lieu destdout
. Sinon, cette option est plus général.Grâce à KeithB. J'ai regardé les docs pour cl.exe (VS2008) et a trouvé l' /showIncludes drapeau. À partir de l'IDE, ce qui peut être défini à partir de la page de propriétés de fichier CPP.
math.h
Pour un poids lourd de la solution, vous devriez vérifier doxygen. Il scanne votre base de code et est livré avec un site web, effectivement, que les documents de votre code. Une des nombreuses choses qu'il montre c'est d'inclure les arbres.
Si vous cherchez à être en mesure de raccorder la sortie de cet outil dans un autre processus, alors cela peut ne pas fonctionner pour vous (bien que doxygen est-il des résultats à d'autres formats, je ne suis pas très familier avec cette fonctionnalité). Si vous voulez simplement globe oculaire les dépendances, cependant, il devrait fonctionner à merveille.
J'ai joué avec un outil appelé cinclude2dot. C'était assez utile pour obtenir une poignée sur une assez grande base de code quand je suis venu travailler ici. En fait, j'ai pensé à l'intégrer dans notre quotidien de construire par la suite.
.cc/.c/.cxx
fichier(uniquement le.h
fichiers) peuvent être redondantes.Première, cinclude2dot.pl est un script perl qui analyses de code C/C++ et produit un #include graphe de dépendance comme un point de fichier pour l'entrée en graphviz.
http://www.flourish.org/cinclude2dot/
Si vous ne voulez pas aller dans le sens de ce genre d'outil manuel, puis les mains vers le bas, de loin, le gagnant est à mon avis un outil appelé "IncludeManager" de ProFactor.
http://www.profactor.co.uk/includemanager.php
Il y a un essai gratuit, et il est génial. C'est un plug-in pour Visual Studio qui est totalement intégré, de sorte double-cliquant sur quelque chose de plus ici vous emmène à l'endroit où il est inclus là-bas.
Info-bulle mouseovers vous donner toutes les infos que vous voulez, et il vous permet de forer vers le bas /vers le haut, retirez l'ensemble de sous-arbres qui ne vous intéressent pas, d'afficher des représentations autres que graphiques, pour parcourir une liste de résultats correspondant à ceci et cela, c'est merveilleux.
Si vous êtes rapide à ce sujet, vous pouvez restructurer la structure #include grands projets avant la période d'essai. De même, il ne coûte pas beaucoup, environ 35 $par licence.
Pour ce qu'il fait, il est à peu près parfait. Non seulement #inclure des graphiques, mais aussi de la croix les dépendances d'un projet de partage des fichiers, l'impact sur les temps de construire, les propriétés détaillées dans les grilles, parfait.
Bonne nouvelle: redhat Source-Navigator (fonctionne sur Windows aussi). Bien sûr, des commutateurs du compilateur (mentionné précédemment), ont une analyse et je ne suis pas sûr de savoir comment cela va gérer MFC, Qt et de leur magie des mots clés.
Bâtiment sur KeithB réponse, voici GNUmake syntaxe automatiquement 1) générer les fichiers de dépendance, 2) de les conserver jusqu'à ce jour, et 3) les utiliser dans votre makefile:
(Assurez-vous de changer ces tirets, de hardtabs.)
Vous pouvez aussi consulter les makedepend:
http://en.wikipedia.org/wiki/Makedepend
http://www.xfree86.org/current/makedepend.1.html
Comprendre pour C++ devrait être en mesure pour vous aider: il construit une base de données que vous pouvez accéder à partir de Perl.
cscope (http://cscope.sourceforge.net/) est-ce que dans un autonome xterm, et peut également être utilisé à l'intérieur de votre éditeur de texte favori - il a une grande emacs et vi/vim soutien.
Il est un outil gratuit Inclure Les Dépendances Des Fichiers Watcher