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

Can*_*ith 41 c c++ include visual-studio

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

All*_*ite 17

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

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

如果你不想采用那种手动工具的方式,那么在我看来,迄今为止赢家的工具是ProFactor的一个名为" IncludeManager " 的工具.

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

这是一个免费的试用版,非常棒.它是Visual Studio的一个插件,它是完全集成,因此双击的东西在这里把你带到它包括的地方在那里.

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

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

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


kgi*_*kis 12

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

  • 实际上,在大多数情况下它很简单 - 使用Doxygen Wizard的Windows GUI来生成它,或者从命令行运行`doxygen -g`来生成默认的`Doxyfile`然后确保你有值'INCLUDE_GRAPH`和`INCLUDED_BY_GRAPH`设置为`YES`.然后,您可能需要运行Doxygen几次并检查输出以调整参数. (3认同)

ica*_*bod 10

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

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

你得到的输出有点......令人费解,但它会告诉你包含什么以及以什么顺序包含.

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


wip*_*wip 6

您可以尝试此Stack Overflow答案建议的方法:

有一个C/C++ - >高级项目设置"show Includes".那将生成树.它映射到编译器开关/ showIncludes


Phi*_*ney 5

如果您使用的是 Visual Studio 2010,则可以使用来自 Microsoft的新可视化和建模功能包,它具有生成包含图的功能。不过,这只能通过 MSDN 下标获得。