Loading AI tools
用來從原始碼產生軟體文件的自由軟體 来自维基百科,自由的百科全书
Doxygen是一个适用于C++、C、Java、Objective-C、Python、IDL(CORBA和Microsoft flavors)、Fortran、VHDL、PHP、C#和D语言的文档生成器。它可以在大多数类Unix操作系统、macOS以及Microsoft Windows上执行。初始版本的Doxygen使用了一些旧版本DOC++的原始码,在那之后,Dimitri van Heesch重写了Doxygen的原始码。
此条目翻译品质不佳。 (2020年2月25日) |
此条目没有列出任何参考或来源。 (2017年10月26日) |
![]() | |
开发者 | Dimitri van Heesch |
---|---|
当前版本 |
|
原始码库 | |
编程语言 | C++ |
操作系统 | 跨平台 |
类型 | 文档生成器 |
许可协议 | GNU通用公共许可证 |
网站 | www |
Doxygen是一个编写软件参考文档的工具。该文档是直接写在原始码中的,因此比较容易保持更新。Doxygen可以交叉引用和原始码,使文件的读者可以很容易地引用实际的原始码。
KDE将Doxygen作为它的一部分且KDevelop具有内建的支持。 Doxygen的发布遵守GNU通用公共许可证,是自由软件。
如同Javadoc,Doxygen从源文件提取注解。除了Javadoc的语法,Doxygen支持Qt使用的文档标记,并可以输出成HTML、以及CHM、RTF、PDF、LaTeX、PostScript或手册页。
注释文档一般用两个星号标志:
/**
* <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
}