我正在使用 Doxygen 1.8.4。我看到以下问题在我以前的 Doxygen 版本中没有发生 - 1.7.1.2
我创建了两个项目 - TestProject1 和 TestProject2
测试项目1
包含1个头文件XBO.h,如下:
/*! \brief XBO is boring */
namespace XBO {
/*! \brief XBONestedNS is also boring
*/
namespace XBONestedNS {
}
}
通过 doxygen 运行此文件后,我在生成的文档目录中得到一个标记文件,如下所示:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
<compound kind="namespace">
<name>XBO</name>
<filename>namespaceXBO.html</filename>
<namespace>XBO::XBONestedNS</namespace>
</compound>
<compound kind="namespace">
<name>XBO::XBONestedNS</name>
<filename>namespaceXBO_1_1XBONestedNS.html</filename>
</compound>
<compound kind="dir">
<name>TestProject1</name>
<path>/abc1/users/someuser/userbranch/project/src/library/TestProject1/</path>
<filename>dir_a1513fb003dc8c1062e5770a29b83379.html</filename>
<file>XBO.h</file>
</compound>
</tagfile>
测试项目2
包含1个头文件,如下
YBO.h
/*! \brief YBO is boring */
namespace YBO {
}
在 TestProject2 的 makefile.doxygen 中,引用了来自 TestProject1 的 .tag 文件,如下所示:
@TAGFILES = $(DOXY_OUTPUT)/../TestProject1/TestProject1.tag=../TestProject1
创建 TestProject2 的 doxygen 文件时,命名空间 XBO(来自 TestProject1)错误地包含在 TestProject2 的命名空间列表中。
换句话说,当一个项目被另一个项目引用并且该项目包含嵌套命名空间时,第一个项目的顶级命名空间(即其中嵌套命名空间的命名空间)显示在第二个项目的 doxygen 文档中。