我正在寻找一个工具(最好是一个Visual Studio插件),它可以显示给定文件包含的所有文件,并显示这些文件包含的所有文件等等。
答案 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)
答案 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中为其提供一个设置框作为用户输入。