如何轻松查看C / C ++ #include图?

时间:2010-06-18 11:24:44

标签: c++ c visual-studio include

我正在寻找一个工具(最好是一个Visual Studio插件),它可以显示给定文件包含的所有文件,并显示这些文件包含的所有文件等等。

7 个答案:

答案 0 :(得分:17)

首先, cinclude2dot.pl 是一个perl脚本,它分析C / C ++代码并生成一个#include依赖图作为点文件输入到graphviz中。

http://www.flourish.org/cinclude2dot/

如果你不想采用那种手动工具的方式,那么在我看来,迄今为止胜出者是ProFactor的一款名为“ IncludeManager ”的工具。 / p>

http://www.profactor.co.uk/includemanager.php

有免费试用版,非常棒。它是Visual Studio的一个完全集成的插件,所以双击 over here 可以将你带到那边的地方。

工具提示鼠标悬停为您提供所需的所有信息,它可以让您向下钻取/删除,删除您不关心的整个子树,查看图形以外的表示,循环显示此匹配列表,太棒了。

如果您对此很快,可以在试用期结束前重构大型项目的#include结构。即便如此,它也不会花费太多,每个许可证大约35美元。

对于它的作用,它只是完美无缺。不仅包括#include图,还包括跨共享文件的项目依赖性,对构建时间的影响,网格中的详细属性,完美。

答案 1 :(得分:12)

Doxygen,在Graphviz的帮助下,可以做到这一点。首先需要编辑配置文件。这在您第一次这样做时并不容易,但之后不需要进行太多编辑。

答案 2 :(得分:10)

可能不是您想要的,但Visual Studio编译器(cl.exe)有一个选项/showIncludes,它会在您编译文件时显示包含树。

如果您希望将此信息用于单个文件,则可以在解决方案资源管理器中右键单击该文件,选择“属性”,然后在“命令行”部分中将/ showIncludes添加到“其他选项”。 (注意我使用的是VC ++ 2005,因此对于较新的版本可能会有所不同。)

你得到的输出有点......令人费解,但它会显示包含的内容以及顺序。

顺便说一句,GCC和英特尔C ++编译器(至少我的版本)中的相同功能是-H

答案 3 :(得分:6)

您可以尝试使用此Stack Overflow answer建议的方法:

  

有一个C / C ++ - >高级项目设置"显示包含"。那   将生成树。它映射到编译器开关/showIncludes

答案 4 :(得分:4)

如果您使用的是Visual Studio 2010,则可以使用Microsoft的新Visualization and Modelling Feature Pack,它具有生成包含图的功能。这只能通过MSDN下标获得。

答案 5 :(得分:2)

不是你喜欢的,但是doxygen做得很好。

答案 6 :(得分:0)

http://www.codeproject.com/KB/applications/includefinder.aspx

这不是VS插件,但可以作为您自己工具的入门者。据我所知,它只读取VC6项目,较新的VS具有易于解析的XML格式。您需要的是默认的包含路径,以便工具可以找到包含的文件。或者,您可以在GUI中为其提供一个设置框作为用户输入。