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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:27:04