Doxygen 的使用简介 - 软件工程 - 飞翔,嵌入式linux

来源:百度文库 编辑:神马文学网 时间:2024/04/30 11:55:54
Doxygen 的使用简介
http://sourceforge.net/projects/doxygen/   Doxygen 是一个类似 JavaDoc 的文档生成工具。有了它,C++爱好者就可以为自己的源代码很方便地生成美观实用的文档了。

为代码生成文档标注基础

  您可以使用JavaDoc风格,类似于由C风格的注释块:
/**            * ... 文本 ...            */

此外您也可以使用Qt风格,如

/*!            * ... 文本...            */

以上两种风格中间的*是可选的,也就是下面这样写也是可以的:

/*!            ... 文本...            */

第三种是使用至少两行C++"//"注释,如:

///            /// ... 文本...            ///

或者

//!
//!...文本...
//!

有的程序员也许喜欢下面这种风格,有比较好的视觉效果:

/////////////////////////////////////////////////            /// ... 文本...            /////////////////////////////////////////////////

  对于简单的描述信息,可能有几种情况。一种是在注释块的开头使用\brief命令,该命令一直到段落结束有效,所以详细描述信息从空一行后开始,如下例:

/*! \brief 简洁的描述信息 description.            * 又一些简洁的描述信息。            *            * 详细描述信息从这里开始。            */

  在配置文件中,如果JAVADOC_AUTOBRIEF设为YES,则Doxygen将使用JavaDoc风格的注释块,从简洁描述信息后的点空格. 开始为详细描述信息,例如:

/** 简洁信息结尾是一个点号. 详细描述信息从            * 这里开始            */

该选项对C++风格的多行注释也是有效的:

///简洁信息结尾是一个点号. 详细描述信息从            ///这里开始

或者:

/// 简洁描述信息            /** 详细描述信息*/

或者:

//!简洁描述信息            //!详细描述信息从            //!这里开始

  此例中间空行用来分割简洁描述信息块和详细描述信息块。可见doxygen的文档标注使用格式是非常自由的。不过要注意下面格式是不合法的,因为doxygen只允许一块详细描述信息对应一块简洁描述信息:

//!简洁描述信息            //! 详细描述信息            /*! 注意,又一详细描述信息!            */
下例使用Qt风格的文档标注:            //! A test class.            /*!            A more elaborate class description.            */            class Test            {            public:            //! An enum.            /*! More detailed enum description. */            enum TEnum {            TVal1, /*!< Enum value TVal1. */            TVal2, /*!< Enum value TVal2. */            TVal3  /*!< Enum value TVal3. */            }            //! Enum pointer.            /*! Details. */            *enumPtr,            //! Enum variable.            /*! Details. */            enumVar;            //! A constructor.            /*!            A more elaborate description of the constructor.            */            Test();            //! A destructor.            /*!            A more elaborate description of the destructor.            */            ~Test();            //! A normal member taking two arguments and returning an integer value.            /*!            \param a an integer argument.            \param s a constant character pointer.            \return The test results            \sa Test(), ~Test(), testMeToo() and publicVar()            */            int testMe(int a,const char *s);            //! A pure virtual member.            /*!            \sa testMe()            \param c1 the first argument.            \param c2 the second argument.            */            virtual void testMeToo(char c1,char c2) = 0;            //! A public variable.            /*!            Details.            */            int publicVar;            //! A function variable.            /*!            Details.            */            int (*handler)(int a,int b);            };            

  Doxygen的文档标注是不是非常容易?当然还可以有更高级的应用,如标注列表、分组,甚至支持生成公式(Latex)。上面只编译了最简单的一些使用方法,更多内容请参考Doxygen的帮助文档doxygen_manual。

附带文档的说明:

DoxygWizard是基于QT的简易图形用户界面,简化了Doxygen的使用。您可以在DoxygWizard里对需要生成的文档进行设置,可保 存为"Doxyfile",然后调用Doxygen生成文档。需要注意的是,文件路径不支持中文,所以尽可能使您的源代码和文档目录均为英文名。 在"Doxyfile"文件同一目录请放置一个"mylogo"纯文本文件,内容可以是一些版权标识信息,这些信息将显示在生成文档页面的最下边,如果没 有此"mylogo"文件,将生成默认的版权标识信息。
  样式表文件Orignl_doxygen.css、green_doxygen.css、yellow_doxygen.css、Blue_doxygen.css,改文件名为doxygen.css后,拷贝到生成html文档的目录内可以改变文档显示的样式。
  OUT PUT_LANGUAGE 可选项为Englisth(英文文档), Chinese(中文文档), En_Can_Cn(支持中文注释的英文文档)

相关网址:

http://www.doxygen.org/download.html
您还需要下载graphviz dot画图:
http://www.research.att.com/sw/tools/graphviz/