Doxygen 1.8.5 @code块预处理丢失宏定义内容问题求助
Doxygen 1.8.5中@code块带表达式#define宏丢失的解决方案
针对你在Doxygen 1.8.5里遇到的@code块中带表达式的#define宏在启用预处理后丢失表达式的问题,这里提供两个无需逐个修改宏的可行方案:
替换@code为@verbatim块
Doxygen的@verbatim标签会完全保留代码块内的所有内容,不会触发任何预处理操作。只需要将.dox文件中的@code替换为@verbatim,@endcode替换为@endverbatim即可,所有宏的表达式都会原样显示,无需修改宏本身。配置预处理白名单保留指定宏
在Doxygen配置文件中,利用NO_EXPAND_LIST选项指定不需要展开的宏名称,多个宏用空格分隔。例如:NO_EXPAND_LIST = MACRO_1 MACRO_2 MACRO_3这样Doxygen在预处理时会跳过这些宏的展开,保留它们的原始表达式。如果宏数量较多,也可以通过
PREDEFINED配合EXPAND_ONLY_PREDEF=YES来反向控制:只展开你明确指定的宏,其余宏保持原样。例如:EXPAND_ONLY_PREDEF = YES PREDEFINED = NEED_EXPAND_MACRO_1 NEED_EXPAND_MACRO_2
需要注意的是,Doxygen 1.8.5版本较老,部分新特性可能不支持,但上述两种方案在该版本中均能正常工作。
内容的提问来源于stack exchange,提问作者Rokrait
相关产品推荐
相关产品推荐

