Dre*_*ann 13 c++ oop inheritance doxygen
当使用doxygen生成C++继承图时,我注意到图表可能不完整.
如果使用标记文件记录多个项目以允许交叉引用,则doxygen将成功显示其他标记文件中存在的所有基类,但如果它们位于其他标记文件中,则不会显示派生类.显示的派生类始终只是当前项目中存在的类.
示例项目1代码:
class A {};
class B : public A {};
class C : public A {};
Run Code Online (Sandbox Code Playgroud)
示例项目2代码:
#include <proj1.h>
class D : public A {};
class E : public A {};
class F : public E {};
Run Code Online (Sandbox Code Playgroud)
A项目1 的继承图,使用项目2中的标记文件 - 其中D,E&F?
E使用项目1中的标记文件 - 父类A显示项目2 的继承图.
是否有设置告诉doxygen在使用标记文件时跨项目生成完整的继承图?
小智 1
这是一份全面的指南,详细介绍了如何使用 Doxygen 创建交叉引用多个项目的完整继承图。这是通过利用 Doxygen 的标记文件来实现的。
详细步骤
例如,打开项目目录中的Doxyfile并设置以下参数:
GENERATE_HTML = NO
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_MAN = NO
GENERATE_TAGFILE = myProj.tag
INPUT = /path_to_your_project_files/
Run Code Online (Sandbox Code Playgroud)
此配置将输出一个名为 myProj.tag 的文件,其中包含当前项目的类和文件的所有关系信息。对您的所有项目重复此操作。
例如,对于project1,您可以TAGFILES在 Doxyfile 中设置参数,如下所示:
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_MAN = NO
TAGFILES = /path_to_tag_files/project2.tag=/url_or_path_to_project2_documentation \
/path_to_tag_files/project3.tag=/url_or_path_to_project3_documentation
Run Code Online (Sandbox Code Playgroud)
因此,每当您生成project1 的文档时,Doxygen 还将使用project2 和project3 标记文件中的数据。
确保设置:
HAVE_DOT = YES
CLASS_DIAGRAMS = YES
CLASS_GRAPH = YES
Run Code Online (Sandbox Code Playgroud)
这些设置确保 Doxygen 生成类的继承和协作图。
请记住,为了使交叉引用正常工作,每个项目都需要了解所有其他项目。TAGFILES因此,在为每个单独项目生成文档时,请务必在选项中列出每个项目的标记文件。
让我们看看你的例子:
示例项目 1 代码:这里我们将相关类(A、B、C)分组到标题“项目 1”下。
/** @defgroup project1 Project 1
* This is the first group
* @{
*/
class A {};
class B : public A {};
class C : public A {};
/** @} */ // end of project1
Run Code Online (Sandbox Code Playgroud)
示例项目 2 代码:同样,我们将类(D、E、F)分组到“项目 2”下。
/** @defgroup project2 Project 2
* This is the second group
* @{
*/
#include <proj1.h>
class D : public A {};
class E : public A {};
class F : public E {};
/** @} */ // end of project2
Run Code Online (Sandbox Code Playgroud)
在这些示例中,该@defgroup命令用于定义组,而 @{ 和 @} 命令用于关闭与该组关联的类。当您决定向组中添加更多成员类时,该@ingroup命令会很方便。
我希望这可以帮助您和其他遇到此问题的人使用 Doxygen 跨多个项目生成完整的继承图!
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |