我在我的新工作地点有一些大型项目,它们之间有一组复杂的静态链接库依赖项。
libs数量大约为40-50,而且很难确定最初的结构是什么,没有关于完整依赖关系图的明确文档。
有人建议使用哪些工具来提取此类数据?
据推测,以最简单的方式,如果做了以下事情:
定义与库单元对应的路径集
将那些文件中的所有.cpp / .h文件设置为属于那些编译单元
捕获第一个订单#include依赖关系树
一个人有足够的信息来组成地图 - 重构 - 并重新组合地图,直到一个人创建了一些订单。
我注意到http://www.ndepend.com有一些不错的东西,但不幸的是,这只是.NET。
我读到了一些关于Doxygen能够通过配置完成一些静态依赖性分析的内容;有没有人曾经将它投入使用以完成这项任务?
答案 0 :(得分:11)
答案 1 :(得分:4)
http://github.com/yuzhichang/cppdep可能就是你想要的。 我编写它是为了分析大型C / C ++项目的组件/包/包组之间的依赖关系。 它是dep_utils(adep / cdep / ldep)的重写,由John Lakos的大型C ++软件设计书提供。
答案 2 :(得分:3)
此工具非常适合分析包含树:IncludeManager。您应该能够从该工具中获得大量有用的信息。
答案 3 :(得分:2)
IncludeFinder 是我成功使用过的免费工具。
答案 4 :(得分:2)
答案 5 :(得分:1)
我准备开始使用需要依赖管理的大型c ++项目,所以很自然地我一直在寻找一些工具。我很惊讶地看到CppDepend被标记为最喜欢的,因为单个许可证的成本为300欧元,而IncludeManager的成本为20英镑。并且做同样的工作。如果这里的任何人都使用过其中一种或两种工具,那么为什么我应该为CppDepend花费额外的280英镑(1英镑~1欧元)是“好”的理由?
*请注意,我希望拥有自己的个人副本,因此无论公司是否拥有该副本都无关紧要。