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

Doxygen 1.8.11开启EXPAND_ONLY_PREDEF时如何生成X宏枚举成员文档

兼容现有配置的解决方法

方案1:修改Doxyfile配置(无需改动代码)

你之前配置失效的核心原因是EXPAND_ONLY_PREDEF = YES开启后,Doxygen仅会主动展开你显式指定的宏,没有把COLOR_VARIABLES加入可展开列表,导致内部的COLOR__X没有被正确解析。
调整Doxyfile配置如下即可:

MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
ENABLE_PREPROCESSING   = YES
PREDEFINED             = INNER_FUNC(msg)= \
                         COLOR__X(name)=name,
EXPAND_AS_DEFINED      = COLOR_VARIABLES

配置说明:

  • 保留你原有INNER_FUNC的预定义规则,不会影响其他模块的正常解析
  • 显式指定COLOR_VARIABLES需要展开,Doxygen会将宏内部的COLOR__X按你预定义的规则替换成枚举成员,同时保留成员后的/*!< */注释,Doxygen 1.8.11版本完全支持该配置逻辑

方案2:代码层补充注释(无需改动Doxygen全局配置)

如果不想调整全局配置避免影响其他模块,可以直接在枚举定义后显式给生成的枚举成员加注释:

/** COLOR doc */
typedef enum {
  #define COLOR__X(name) name,
     COLOR_VARIABLES
  #undef COLOR__X
} color;

/**
 * @var color::RED
 * "RED COLOR"
 * 
 * @var color::BLUE
 * "BLUE COLOR"
 */

Doxygen会直接匹配到对应枚举成员,生成正确的说明文档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:27:02