Doxygen

维基百科,自由的百科全书
跳转至: 导航搜索
Doxygen
Doxygen.png
開發者 Dimitri van Heesch
穩定版本 1.8.8 / 2014年8月21日(2個月前) (2014-08-21)
编程语言 C++
操作系统 跨平台
类型 文檔生成器
许可协议 GNU通用公共许可证
網站 http://www.stack.nl/~dimitri/doxygen/index.html

Doxygen是一個 C++CJavaObjective-CPythonIDLCORBA和Microsoft flavors)、FortranVHDLPHPC#D語言的文檔生成器。可以在大多數類Unix的系統上執行,以及Mac OS X操作系統和Microsoft Windows。初始版本的Doxygen使用了一些舊版本DOC++的源代码;随后,Doxygen源代码由Dimitri van Heesch重写。

Doxygen是一個編寫軟件參考文檔的工具。該文檔是直接寫在源代码中,因此比較容易保持更新。Doxygen可以交叉引用文檔和源代码,使文件的讀者可以很容易地引用實際的源代码。

KDE 使用Doxygen作为其部分文档且KDevelop具有內置的支持。 Doxygen的发布遵守GNU通用公共许可证,并且是自由软件

用法[编辑]

如同Javadoc,Doxygen提取文件從源文件的註解。除了Javadoc的語法,Doxygen支持Qt使用的文檔標記,並可以輸出成HTML、以及CHMRTFPDFLaTeXPostScript或man pages。

範例代碼[编辑]

A screenshot of what the output would look like in HTML.

注释文档一般用两个星号标志:

/**
 * <A short one line description>
 *
 * <Longer description>
 * <May span multiple lines or paragraphs as needed>
 *
 * @param  Description of method's or function's input parameter
 * @param  ...
 * @return Description of the return value
 */

但也能和HeaderDoc一樣使用*!的標誌。 例如:

/*!
 * <A short one line description>
 *
 * <Longer description>
 * <May span multiple lines or paragraphs as needed>
 *
 * @param  Description of method's or function's input parameter
 * @param  ...
 * @return Description of the return value
 */


以下說明如何使C++的源文件產生文件。請確保參數EXTRACT_ALL在Doxyfile設置為YES。

/**
 * @file
 * @author  John Doe <jdoe@example.com>
 * @version 1.0
 *
 * @section LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or(at your option)any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details at
 * http://www.gnu.org/copyleft/gpl.html
 *
 * @section DESCRIPTION
 *
 * The time class represents a moment of time.
 */
 
class Time {
 
    public:
 
       /**
        * Constructor that sets the time to a given value.
        *
        * @param timemillis Number of milliseconds
        *        passed since Jan 1, 1970.
        */
       Time(int timemillis){
           // the code
       }
 
       /**
        * Get the current time.
        *
        * @return A time object set to the current time.
        */
       static Time now () {
           // the code
       }
};

另一種方法是首選的一些參數的記錄如下。這將產生同樣的文件。

       /**
        * Constructor that sets the time to a given value.
        *
        */
       Time(int timemillis ///< Number of milliseconds passed since Jan 1, 1970.{
           // the code
       }

外部鏈接[编辑]