提问人:Neanderthal289 提问时间:10/24/2023 最后编辑:Neanderthal289 更新时间:10/24/2023 访问量:41
Doxygen 在 big c 项目中调用图,具有单独的编译结构,大量的条件编译在头文件中定义和函数定义
Doxygen calls graph in big c project with separate compilation structure, lot of conditional compilation defines and functions definitions in headers
问:
我没有具有单独编译结构的小 c 项目(很多模块经常单独编译,并且通常没有函数实现,而只有 h 文件中的函数定义 - 在这种情况下,函数在另一个模块中实现)。
见图 1。
很快我有两个问题:
我无法在 doxygen 中正确构建函数调用图,因为 doxygen 在另一个 c 文件(exept main.c)中找不到函数定义。Оn 调用图(在 doxygen 生成之后)我没有看到调用其他函数的函数(除了在 main.c 中实现的函数)。但是当我将其他模块函数定义从 c 文件移动到 h 文件时 - 好吧,doxygen 看到它们!但它是拐杖,我没有另一种好方法来查看图形上的所有函数调用。见图 2。我为什么以及如何解决这个问题?
我无法正确构建函数调用图,因为 doxygen 理解条件编译仅针对 main.c 文件定义(看起来像)。在这个 main.c 文件中,函数 main() 调用了许多其他在其他模块中实现的函数。这个另一个函数可以在另一个模块中以不同的方式在预处理器条件语句(#if)的依赖关系中实现。但看起来 doxygen 总是只获得函数实现的第一个入口,而不管预处理器定义如何......但是我想看到第二个或第三个实现,而不是第一个......见图 3。我为什么以及如何解决这个问题?
我可以在此处显示我的调用图的一部分(按原样)。不幸的是,我无法以良好的质量展示它......(这不是我的知识产权)
答: 暂无答案
评论
doxygen -x Doxyfile