如何在Doxygen的.dox文件中根据编译开关生成差异化内容?
在Doxygen中基于编译开关生成平台专属文档
当然可以实现,Doxygen原生支持预处理指令,能直接在.dox文件里用类似条件编译的语法生成不同平台的HTML内容,具体操作如下:
1. 定义平台宏
你可以直接在代码里定义宏,比如:
#define UsedPlatform PlatformA
也可以在Doxygen的配置文件Doxyfile中通过PREDEFINED参数设置,不用修改代码:
PREDEFINED = UsedPlatform=PlatformA
2. 在.dox文件中编写条件文档
直接在文档注释里使用#if、#else、#endif这类预处理语句,按你示例的逻辑调整成中文即可:
/** * \page chapter3 第3章:内部设计 \tableofcontents \section c3_static_view 3.1 静态视图 内容示例: #if(UsedPlatform==PlatformA) 当前使用的是Platform A平台 #else 当前使用的是Platform B平台 #endif */
3. 关键注意点
- 确认Doxygen的预处理功能处于开启状态,默认
ENABLE_PREPROCESSING选项就是YES,若被修改过改回YES即可 - 如果宏是字符串类型,要加引号,比如
#define UsedPlatform "PlatformA",对应的条件判断要写成#if(UsedPlatform=="PlatformA")
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

