You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Doxygen分组exp为何包含showInt?如何排除分组外无关函数?

Doxygen分组包含无关函数的原因及解决办法

原因

在Doxygen 1.8.17版本中,存在默认的自动归类行为:当代码中存在已定义的分组(比如你创建的exp组),且未给其他函数(如showInt())指定任何分组归属或隐藏标记时,Doxygen会自动将这些未分组的公开实体归入第一个已定义的分组中,最终导致无关函数出现在exp模块文档里。

解决办法

方法1:给无关函数添加隐藏标记

给不需要公开的函数添加\internal注释,标记为内部使用,这样Doxygen就不会将其纳入公开的模块文档:

/**
 * \internal
 * \brief 内部打印整数的函数
 */
void showInt(int value)
{
    std::cout << "value=" << value;
}

如果希望完全隐藏该函数(连内部文档都不生成),也可以使用\private标记,同时确保Doxyfile中EXTRACT_PRIVATE = NO(默认即为NO)。

方法2:配置Doxyfile隐藏未注释成员

修改Doxyfile,启用HIDE_UNDOC_MEMBERS选项,让Doxygen自动忽略所有没有编写Doxygen注释的函数:

HIDE_UNDOC_MEMBERS = YES

这种方式适合批量处理无注释的内部函数,无需逐个添加标记。

方法3:创建内部分组归类无关函数

专门定义一个内部分组,将不需要公开的函数归入其中,同时标记该组为内部:

/**
 * \defgroup internal 内部工具函数
 * \internal
 * \brief 仅内部使用的函数集合
 */

/**
 * \ingroup internal
 */
void showInt(int value)
{
    std::cout << "value=" << value;
}

这样showInt()会被归入内部分组,不会出现在公开的exp组文档中。

方法4:关闭自动分组行为

修改Doxyfile,关闭自动嵌套和自动分组的相关配置:

AUTOGROUP_SUBDIRS = NO
GROUP_NESTED_COMPOUNDS = NO

这可以避免Doxygen自动将未分组实体归入现有公开分组。

内容的提问来源于stack exchange,提问作者vico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:34:53