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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:20:07