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

问题描述 投票:1回答:1

this question一样,我想找到#includes链,通过它可以将特定的定义合并到我的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,所以如果我能在那个程序中完成它,那就没问题,或者某些命令行工具也会很好。

c++ c kdevelop
1个回答
0
投票

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

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

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

最后,这是一个Doxygen setup tutorial(尽管网上某处可能还有1-2-3步骤大纲)。

© www.soinside.com 2019 - 2024. All rights reserved.