gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:16 25 4
gpt4 key购买 nike

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,所以如果我可以在该程序中执行它,那很好,或者一些命令行工具也很好。

最佳答案

Doxygen可以在 native 或对配置文件进行最少更改的情况下执行此操作。

VTK有一个不错的公共(public)页面,您可以在其中浏览 - 特别是,如果您查看他们的高级域之一:vtkObjectBase您可以开始看到 Doxygen 提供的信息深度。

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

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

关于c++ - 如何使用 Linux 工具找到导致声明的包含链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com