Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Displaying the #include hierarchy for a C++ file in Visual Studio

Problem: I have a large Visual C++ project that I'm trying to migrate to Visual Studio 2010. It's a huge mix of stuff from various sources and of various ages. I'm getting problems because something is including both winsock.h and winsock2.h.

Question: What tools and techniques are there for displaying the #include hierarchy for a Visual Studio C++ source file?

I know about cl /P for getting the preprocessor output, but that doesn't clearly show which file includes which other files (and in this case the /P output is 376,932 lines long 8-)

In a perfect world I'd like a hierarchical display of which files include which other files, along with line numbers so I can jump into the sources:

source.cpp(1)   windows.h(100)     winsock.h   some_other_thing.h(1234)     winsock2.h 
like image 536
RichieHindle Avatar asked Jul 16 '09 14:07

RichieHindle


2 Answers

There is a setting:

Project Settings -> Configuration Properties -> C/C++ -> Advanced -> Show Includes

that will generate the tree. It maps to the compiler switch /showIncludes

like image 79
xtofl Avatar answered Sep 21 '22 01:09

xtofl


The compiler also supports a /showIncludes switch -- it doesn't give you line numbers, but can give a pretty comprehensive view of which includes come from where.

It's under Project Settings -> Configuration Properties -> C/C++ -> Advanced -> Show Includes.

like image 21
Kim Gräsman Avatar answered Sep 22 '22 01:09

Kim Gräsman