У меня есть немного неопрятный проект в C ++ (решение Visual Studio + CMakeLists.txt). Существует множество «включений» из внешних проектов, и трудно сказать, какие из них действительно используются.
Я хочу удалить все неиспользуемые заголовки и связанные с ними файлы реализации как из решения Visual Studio, так и из CMakeLists.txt.
Есть ли инструмент для такой задачи?
Коммерческое решение этой проблемы — «Понимание для C / C ++». Это приложение, которое сканирует вашу полную кодовую базу, сохраняет все отношения во внутренней базе данных, после чего вы можете открывать все виды отчетов или выполнять запросы к ней. Я думаю, что у него есть возможность также искать неиспользуемые классы, неиспользуемые методы, мертвый код, …
Бесплатным решением может быть использование параметра компоновщика / VERBOSE в Visual Studio. Эта опция заставляет компоновщик распечатать все объектные файлы, которые включены в конечный исполняемый файл. Вы можете взять этот вывод, сопоставить его со всеми вашими файлами .CPP, а затем посмотреть, какие файлы .CPP не включены в исполняемый файл (для этого может потребоваться написать небольшую утилиту или, возможно, некоторую магию Excel).