Всегда есть опция "- H" для gcc / g ++ ...
Например:% г ++ -H foo.C
'-H'
Print the name of each header file used, in addition to other
normal activities. Each name is indented to show how deep in the
'#include' stack it is. Precompiled header files are also
printed, even if they are found to be invalid; an invalid
precompiled header file is printed with '...x' and a valid one
with '...!' .
Тогда:
- 'sed' или 'awk', чтобы удалить ведущий '...'.
- 'сортировать, чтобы сделать одинаковые имена смежными.
- 'uniq -c' для подсчета имен.
- 'grep -v' для удаления синглетонов.
Как в:
% g++ -H foo.C |& awk '{print $2}' | sort | uniq -c | grep -v ' 1 '
Или это слишком linux'y / unix'y для вас?
(Под окнами всегда есть cygwin.)