学习用doxygen生成源码文档
= YES LATEX_OUTPUT = latex #for RTF GENERATE_RTF = YES RTF_OUTPUT = rtf RTF_HYPERLINKS = YES #for MAN pages GENERATE_MAN = YES MAN_OUTPUT = man #for XML GENERATE_XML = YES doxygen 中的特殊标记 doxygen 包含几个特殊标记。 C/C++ 代码的预处理 为了提取信息,doxygen 必须对 C/C++ 代码进行预处理。但是,在默认情况下,它只进 行部分预处理 —— 计算条件编译语句(#if…#endif),但是不执行 宏展开。请考虑 清单 6 中的代码。 清单 6. 使用宏的C++ 代码示例
通过源代码中定义的<USE_ROPE>,doxygen生成的文档如下:
在这里可以看 到 doxygen 执行了条件编译,但是没有对 STRING 执行宏展开。Doxyfile 中的 <ENABLE_PREPROCESSING> 标记在默认情况下设置为 Yes。为了执行宏展开,还应 该把 <MACRO_EXPANSION> 标记设置为 Yes。这会使 doxygen 产生以下输出:
如果把 <ENABLE_PREPROCESSING> 标记设置为 No,前面源代码的doxygen 输出就是:
注意,文档现在没有定义,而且不可能推导出 STRING 的类型。因此,总是应该把 <ENABLE_PREPROCESSING> 标记设置为 Yes。 在文档中,可能希望只展开特 定的宏。为此,除了把 <ENABLE_PREPROCESSING> 和 <MACRO_EXPANSION> 标记设置为 Yes 之外,还必须把 <EXPAND_ONLY_PREDEF> 标记设置为 Yes(这个 标记在默认情况下设置为 No),并在 <PREDEFINED> 或 <EXPAND_AS_DEFINED> 标记中提供宏的细节。请考虑 清单 7 中的代码,这里只希 望展开宏 CONTAINER。 清单 7. 包含多个宏的C++ 源代码
清 单 8 给出配置文件。 清单 8. 允许有选择地展开宏的 Doxyfile
下面的doxygen 输出只展开了 CONTAINER:
注意,只有 CONTAINER 宏被展开了。在 <MACRO_EXPANSION> 和 <EXPAND_ONLY_PREDEF> 都设置为 Yes 的情况下,<EXPAND_AS_DEFINED> 标记只选择展开等号操作符右边列出的宏。 对于预处理过程,要注意的最后一个 标记是<PREDEFINED>。就像用-D 开关向 C++ 编译器传递预处理器定义一样,使用 这个标记定义宏。请考虑 清单 9 中的Doxyfile。 清单 9. 定义了宏展开标记的 Doxyfile
下面是doxygen生成的输出:
在使用<PREDEFINED> 标记时,宏应该定义 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |