如何找到导致使用Linux工具声明的包含链?

时间:2014-04-24 19:04:37

标签: c++ c kdevelop

this question中一样,我想找到#include的链,通过该链可以将特定的定义合并到我的C / C ++文件中。例如,假设main.c包含此代码

#include <math.h>
int main() {
    double d = exp(0);
    return 0;
}

然后在我的系统(相当标准的Linux)上,math.h包括bits/mathcalls.h,其中exp()被声明。所以我想对main.c进行某种分析,得到像

这样的输出
exp:
 main.c
 math.h
 bits/mathcalls.h

格式化是无关紧要的,我只想要使用exp()所在位置的完整链接文件链到声明它的位置。是否有一些Linux兼容的工具可以用来做这个?

我上面链接的问题提供了一种在Visual Studio中执行此操作的方法,但由于显而易见的原因,这对我不起作用。我确实使用Kdevelop,所以如果我能在该程序中完成,那就没问题,或者某些命令行工具也会很好。

1 个答案:

答案 0 :(得分:0)

Doxygen可以本机执行此操作,也可以对配置文件进行最少的更改。

VTK有一个很好的公共页面,你可以浏览 - 特别是,如果你看看他们的一个高级域名:vtkObjectBase你可以开始看到信息Doxygen给出。

如果查看vtkObject,您会立即看到继承此类的所有模块。此外,您可以单击Class Members链接,具体查看哪些模块继承了哪些成员(例如Observer属于vtkDataRepresentation,vtkOrientationMarkerWidget,vtkPainter,vtkPainterPolyDataMapper,vtkTextRepresentation)。

最后,这里是Doxygen setup tutorial(虽然网上某处可能还有1-2-3步骤大纲)。