Search code examples
c++cvisual-studio-2005headerinclude

Identify which file has included some particular header file


Sometimes with a complex header structure it happens some header is included, but it is hard to tell where from.

Is there some tool (depedency viewer?) or a method how to find the "inclusion stack" (which source / which header / which header / ...) is including one particular header file?

If the header file is included multiple times, finding first inclusion is sufficient, finding all inclusions is a welcome bonus.


Solution

  • Someone has posted about it but I can't find this answer. So, In VS, go to your project properties. Choose Configuration Properties / C/C++ / Advanced / Show Includes and set "yes".

    then compile you cpp file. It looks like this: cpp file:

    #include <stdio.h>
    
    int main()
    {
        return 0;
    }
    

    In the output window after compiling you will see:

    1>------ Build started: Project: stlport_project, Configuration: Release Win32 ------
    1>Compiling...
    1>stlport_project.cpp
    1>Note: including file: D:\src\hrs_rt_059.00\HRS\modules\src\libs\src\external\stlport\5.1.7\stdio.h
    1>Note: including file:  D:\src\hrs_rt_059.00\HRS\modules\src\libs\src\external\stlport\5.1.7\stl/_prolog.h
    1>Note: including file:   D:\src\hrs_rt_059.00\HRS\modules\src\libs\src\external\stlport\5.1.7\stl/config/features.h
    

    and so on

    EDIT: reference to the same question Displaying the #include hierarchy for a C++ file in Visual Studio