如何在Doxygen文档中隐藏构建系统定义的__MEOW宏?
解决Doxygen中隐藏__MEOW宏的问题
针对你遇到的__MEOW宏仍出现在Doxygen文档中的问题,有以下几种可行方案:
方案一:调整Doxygen预处理配置
修改你的Doxyfile,添加EXPAND_AS_DEFINED配置项,确保Doxygen主动展开指定宏:
PROJECT_NAME = test OPTIMIZE_OUTPUT_FOR_C = YES HIDE_SCOPE_NAMES = YES GENERATE_LATEX = NO ENABLE_PREPROCESSING = YES PREDEFINED = "__MEOW=" EXPAND_AS_DEFINED = __MEOW # 新增此项,让Doxygen展开该宏 INPUT = test.h
EXPAND_AS_DEFINED会强制Doxygen将指定宏替换为其定义值(此处为空),从而在生成的文档中移除__MEOW。
方案二:在代码中添加Doxygen条件编译标记
在头文件中用条件编译包裹__MEOW,让Doxygen处理时跳过这部分:
/*! @file */ /*! Does something. @param a The A. */ extern void meow_mix(int a) #ifndef DOXYGEN_SHOULD_SKIP_THIS __MEOW #endif ;
然后在Doxyfile的PREDEFINED中添加对应宏定义:
PREDEFINED = "__MEOW=" DOXYGEN_SHOULD_SKIP_THIS
这样Doxygen解析时会跳过#ifndef块内的__MEOW,而实际编译过程不受影响。
方案三:全局开启宏展开
如果需要展开所有预处理宏,可以开启MACRO_EXPANSION:
ENABLE_PREPROCESSING = YES PREDEFINED = "__MEOW=" MACRO_EXPANSION = YES # 开启全局宏展开
这种方式会让Doxygen自动展开所有宏,包括__MEOW,从而将其从文档中隐藏。
内容的提问来源于stack exchange,提问作者eepp
相关产品推荐
相关产品推荐

