使用Breathe+Doxygen生成文档:匿名枚举Toctree显示异常的解决方法
解决匿名枚举在Sphinx/Breathe toctree中显示PhonyNameDueToError的问题
问题原因
匿名枚举没有显式名称,Doxygen解析时会生成PhonyNameDueToError作为占位标识,最终在Sphinx的toctree中显示这个错误占位名。
可行解决方法
方法1:给匿名枚举指定显示名称(推荐)
修改头文件中的注释,通过@name标签为匿名枚举指定自定义名称,Doxygen会用这个名称替代占位符:
/** * @brief test enum. * @ingroup my_group * @name TestEnum */ enum { E_One, // 补充逗号修正语法错误 E_Two };
重新生成Doxygen文档后,toctree中会显示TestEnum,枚举值也能正常展示。
方法2:修正语法+调整Doxygen配置
- 先修正枚举代码的语法错误:为每个枚举值末尾添加逗号,避免Doxygen解析异常。
- 在Doxygen配置文件
Doxyfile中设置EXTRACT_ALL = YES,确保Doxygen完整提取匿名枚举的信息,配合@name标签使用效果更佳。
方法3:在Sphinx中隐藏错误条目(临时方案)
如果无法修改头文件,可在rst文件中通过Breathe的隐藏标记屏蔽错误条目,但无法替换为正常名称:
.. doxygengroup:: my_group :hidden: PhonyNameDueToError
内容的提问来源于stack exchange,提问作者SigmaKlim
相关产品推荐
相关产品推荐

