【发布时间】:2021-09-13 12:05:14
【问题描述】:
我正在使用 Doxygen 1.8.11 版并尝试创建我的 X 宏:
#define COLOR_VARIABLES\
COLOR__X(RED /*!< "RED COLOR" */)\
COLOR__X(BLUE /*!< "BLUE COLOR" */)\
然后我在一个枚举中使用它:
/** COLOR doc */
typedef enum {
#define COLOR__X(name) name,
COLOR_VARIABLES
#undef COLOR__X
} color;
我将 MACRO_EXPANSION 和 ENABLE_PREPROCESSING 设置为 YES,并在我的文件开头设置了 @file。
我希望使用 doxygen 创建的 HTML 显示使用 x 宏定义的每个变量的文档。能做到吗?
编辑:
所以在这里提出一些建议后,我注意到在我的 doxyfile 中我有以下配置:
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
ENABLE_PREPROCESSING = YES
PREDEFINED = INNER_FUNC(msg)=
如果我将EXPAND_ONLY_PREDEF 更改为否,它会起作用,但会导致我的项目出现其他问题。我已尝试执行以下选项,但没有成功:
选项 1:
PREDEFINED = INNER_FUNC(msg)= /
COLOR__X(name)=name, /
COLOR__X:=COLOR__X
选项 2:
EXPAND_AS_DEFINED = COLOR__X(name) /
COLOR__X
【问题讨论】:
-
deos 这个帮助stackoverflow.com/questions/28499422/… ?
-
您的问题描述了您想要做什么,但没有描述它失败的原因。请提供有关您的方法如何未能达到您预期的信息。
-
这能回答你的问题吗? X-macro breaks doxygen callgraph
-
您提到:如果我将
EXPAND_ONLY_PREDEF更改为No它将起作用,但它会导致我的项目中出现其他问题。什么样的问题? -
我照你说的做了,将
EXPAND_ONLY_PREDEF更改为No并解决了我需要将以下内容添加到doxyfile 的另一个问题:PREDEFINED = __attribute__((x))=感谢您的帮助!
标签: c c-preprocessor documentation doxygen