我正在尝试向多个组添加一个功能,但它似乎没有起作用。
我按照here
的说明操作以下是我添加的评论:
/**
* \defgroup version1 version 1
*/
/**
* \defgroup version2 version 2
*/
/**
* \ingroup version1 version2
*/
BOOL CLoginFormDlg::OnInitDialog(){}
该功能仅出现在version2模块中,而不出现在version1模块中。
如果我像这样写最后一个版本:
/**
* \ingroup version2 version1
*/
BOOL CLoginFormDlg::OnInitDialog(){}
然后该函数仅出现在version1模块中,而不是出现在version2模块中。
我希望它们出现在两个模块中
答案 0 :(得分:1)
您提供的link包含一个段落,解释了它无效的原因:
请注意,复合实体(如类,文件和命名空间)可以放在多个组中,但成员(如变量,函数,typedef和枚举)只能是一个组的成员(这个限制是为了避免如果成员未在其类,命名空间或文件的上下文中记录,但仅作为组的一部分可见,则模糊链接目标。)
考虑解决此问题的一种方法可能是为每个版本的代码创建不同的Doxygen项目。您将为每个版本创建一个Doxyfile。
在这种情况下,不是使用\ingroup
命令在两组文档中尝试包含公共代码,而是排除每个不相关的代码使用由\if
... \endif
或\cond
... \endcond
分隔的条件部分进行设置。
因此,在您的version1模块中,您将执行以下操作:
/**
* \if _VERSION1_
*/
<all code in your version1 module>
/**
* \endif
*/
并在你的version2模块中:
/**
* \if _VERSION2_
*/
<all code in your version2 module>
/**
* \endif
*/
需要出现在两个模块中的代码(例如BOOL CLoginFormDlg::OnInitDialog(){}
函数)将没有此类条件命令,因此将包含在两组文档中。
在您的version1 Doxyfile中,添加以下行:
ENABLED_SECTIONS = _VERSION1_
和你的version2 Doxyfile:
ENABLED_SECTIONS = _VERSION2_
要将您的version1和version2文档集链接在一起,您可以使用Doxygen的tag file机制。
另见