2015-07-21 1 views
0

J'ai un projet un peu désordonné en C++ (solution Visual Studio + CMakeLists.txt). Il y a beaucoup de «inclus» dans des projets externes, et il est difficile de dire lesquels sont réellement utilisés.C++: Comment trouver des classes "inutilisées" à partir de "point" connu

Je souhaite supprimer tous les en-têtes inutilisés et associés aux fichiers d'implémentation à partir de la solution Visual Studio et de CMakeLists.txt.

Existe-t-il un outil pour une telle tâche?

+0

Probablement une copie de: http://stackoverflow.com/questions/74326/how-should-i-detect-unnecessary-include-files-in-a-large-c-project. Resharper C++ peut maintenant faire cela. – Nikolay

Répondre

1

Une solution commerciale pour ce problème est "Comprendre pour C/C++". C'est une application qui analyse votre base de code complète, stocke toutes les relations dans une base de données interne, après quoi vous pouvez ouvrir toutes sortes de rapports ou effectuer des requêtes sur elle. Je pense qu'il a la possibilité de rechercher aussi les classes inutilisées, les méthodes inutilisées, le code mort, ...

Une solution gratuite pourrait être d'utiliser l'option de l'éditeur de liens/VERBOSE de Visual Studio. Cette option oblige l'éditeur de liens à imprimer tous les fichiers objet inclus dans l'exécutable final. Vous pouvez prendre cette sortie, faire correspondre cela avec tous vos fichiers .CPP, puis voir quels fichiers .CPP ne sont pas inclus dans l'exécutable (cela peut vous obliger à écrire un petit utilitaire, ou peut-être un peu de magie Excel).