构建依赖树

时间:2011-03-23 21:55:44

标签: c++ dependencies

如何使用C ++构建依赖关系树?依赖树我的意思是,例如,检查某个程序运行所需的文件。通过检查,我可以找到是否有任何丢失或损坏的文件。

我该怎么做?

编辑:

我不是在找一个为我做的程序!

2 个答案:

答案 0 :(得分:2)

没有用于计算依赖关系的跨平台方法,因为这实际上不是C ++问题。它与编译器输出的可执行格式有关,在每个平台上都是不同的。

在Linux(可能还有其他Unices)上,ldd命令就是你想要的。这将打印出可执行文件所需的(递归)模块,并告诉您当前可以在系统中找到它们的位置。

在Windows上,Dependency Walker是一个出色的图形工具,可以让您探索可执行文件(或其他DLL)所依赖的所有DLL。

答案 1 :(得分:0)

在讨论Windows时只是一个建议:您可以编写一个模块来捕获所有调用来打开,读取,写入......来自应用程序的文件,并构建所请求的文件列表,可能会过滤此类文件作为标准输入/输出,端口,设备等

您也可以在Linux上执行此操作(这比在Windows上更容易)。

无论如何,我没有意识到你如何构建一个层次结构(树)。 以防万一:您可以将此解决方案与另一个解决方案结合使用(例如ldd,dep walker等)。