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

如何在Doxygen中屏蔽getInstance()的调用者以优化调用/调用者图?

解决Doxygen调用/调用者图里屏蔽特定函数的问题

几个实用办法

1. 给目标函数手动加排除规则

在你关心的函数注释里,生成调用图时用\exclude指定要屏蔽的getInstance(),比如:

/**
 * 这是你要生成调用图的目标函数
 * \callgraph
 * \exclude MySingleton::getInstance()
 * \exclude OtherSingleton::getInstance()
 */
void yourTargetFunc() {
    // 函数实现
}

这种方式要逐个函数加,适合只关注少数函数的场景。

2. 全局配置一键过滤

修改Doxygen的Doxyfile配置文件,找到EXCLUDE_SYMBOLS项,把所有单例的getInstance()加进去:

EXCLUDE_SYMBOLS = MySingleton::getInstance() \
                   OtherSingleton::getInstance() \
                   *::getInstance()  # 嫌麻烦就用通配符,匹配所有类的getInstance()

注意通配符会把所有同名函数都屏蔽,要是项目里有非单例的getInstance(),就得精准写签名。

3. 直接让Doxygen忽略该函数

在getInstance()的注释前后加\cond和\endcond,让Doxygen完全不解析这个函数的任何信息,包括调用关系:

/** \cond */
MySingleton& MySingleton::getInstance() {
    static MySingleton instance;
    return instance;
}
/** \endcond */

这种属于彻底屏蔽,适合确定这个函数的调用关系完全不需要出现在任何图里的情况。

小提醒

Doxygen 1.8.13版本比较老,部分功能可能不如新版本顺手,先试试全局配置的方法,效率最高。要是用通配符,别误删了有用的函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:33:20