咨询:为何Doxygen生成的文档会包含其他命名空间中的类
咨询:为何Doxygen生成的文档会包含其他命名空间中的类
嘿,这个问题我之前踩过坑!结合你说的情况——代码库格式规范、自己的类/成员/函数这些文档都正常生成,就是混进了其他命名空间的类,大概率是这几个原因:
- Doxygen默认会抓取关联实体:如果你的代码和其他命名空间的类存在依赖关系(比如继承它、用它当函数参数/返回值),Doxygen为了让文档的依赖逻辑更清晰,默认会自动把这些关联类也放进文档里,哪怕它们不属于你的核心代码。
- 配置没精准限定扫描范围:要是你没在Doxygen配置里明确指定只处理自己的命名空间,或者
INPUT目录不小心包含了带有其他命名空间代码的文件/目录,Doxygen就会把它能解析到的所有类都生成文档,不管是不是你自己的。 - 注释引用带了外部类:如果你的代码注释里用
@ref或者直接提到了其他命名空间的类,Doxygen也可能会把这些类拉进文档中。
给你几个实用的解决思路:
- 直接在配置里设置
EXCLUDE_SYMBOLS = 你要排除的命名空间::*,精准屏蔽不想出现的命名空间 - 把
INPUT严格限定为只包含你自己的代码目录,别把外部依赖的头文件目录加进去 - 开启
HIDE_UNDOC_CLASSES,如果其他命名空间的类没有Doxygen注释,就会被自动隐藏 - 给自己的命名空间加
@namespace标签,再用@defgroup把自己的代码归为一组,配合GROUP_GRAPHS = YES,就能和外部类明确区分开
另外,你代码库有35万行,建议先找个小测试目录调整配置,快速生成文档验证效果,不然全量生成太费时间啦~
内容来源于stack exchange
相关产品推荐
相关产品推荐

