You should use the \mainpage command inside a comment block like this:
/*! \mainpage My Personal Index Page * * \section intro Introduction * * This is the introduction. * * \section install Installation * * \subsection step1 Step 1: Opening the box * * etc... */
Check the following:
EXTRACT_ALLis set to
YESin the config file.
YESto make them appear in the documentation.
This typically boils down to the following settings in the config file:
ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES PREDEFINED = MY_MACRO()=
Please read the preprocessing section of the manual for more information.
In order for global functions, variables, enums, typedefs, and defines to be documented you should document the file in which these commands are located using a comment block containing a \file (or @file) command.
Alternatively, you can put all members in a group (or module) using the \ingroup command and then document the group using a comment block containing the \defgroup command.
You can use Doxygen's preprocessor for this: If you put
#ifndef DOXYGEN_SHOULD_SKIP_THIS /* code that must be skipped by Doxygen */ #endif /* DOXYGEN_SHOULD_SKIP_THIS */
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
PREPROCESSING = YES.
#includein the class documentation?
You can document your class like
/*! \class MyClassName include.h path/include.h * * Docs for MyClassName */
To make doxygen put
in the documentation of the class MyClassName regardless of the name of the actual header file in which the definition of MyClassName is contained.
If you want doxygen to show that the include file should be included using brackets you should type:
/*! \class MyClassName include.h "path/include.h" * * Docs for MyClassName */
If you want to refer from one compressed HTML file
a.chm to another compressed HTML file called
b.chm, the link in
a.chm must have the following format:
As a result you must rename the generated
index.chm files for all projects into something unique and put all .
chm files in one directory.
Suppose you have a project a referring to a project b using tag file
b.tag, then you could rename the
index.chm for project a into
a.chm and the
index.chm for project b into
b.chm. In the configuration file for project a you write:
TAGFILES = b.tag=b.chm::
installdoxto set the links as follows:
You can disable the index by setting DISABLE_INDEX to YES. Then you can put in your own header file by writing your own header and feed that to HTML_HEADER.
You probably forgot to include the stylesheet
doxygen.css that doxygen generates. You can include this by putting
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
The most important reason is to have a platform abstraction for most Unices and Windows by means of the QFile, QFileInfo, QDir, QDate, QTime and QIODevice classes. Another reason is for the nice and bug free utility classes, like QList, QDict, QString, QArray, QTextStream, QRegExp, QXML etc.
The GUI front-end doxywizard uses Qt for... well... the GUI!
Simply put an exclude pattern like this in the configuration file:
EXCLUDE_PATTERNS = */test/*
Put a % in front of the class name. Like this: %MyClass. Doxygen will then remove the % and keep the word unlinked.
This error happens when doxygen lexical scanner has a rules that matches more than 16K input character in one go. I've seen this happening on a very large generated file (>16K lines), where the built-in preprocessor converted it into an empty file (with >16K of newlines). Another case where this might happen is if you have lines in your code with more than 16K characters.
If you have ran into such a case and want me to fix it, you should send me a code fragment that triggers the message.
Doxygen got its name from playing with the words documentation and generator.
documentation -> docs -> dox generator -> gen
At the time I was looking into lex and yacc, where a lot of things start with "yy", so the "y" slipped in and made things pronouncable.
I once wrote a GUI widget based on the Qt library (it is still available at http://qdbttabular.sourceforge.net/ and maintained by Sven Meyer). Qt had nicely generated documentation (using an internal tool which they didn't want to release) and I wrote similar docs by hand. This was a nightmare to maintain, so I wanted a similar tool. I looked at Doc++ but that just wasn't good enough (it didn't support signals and slots and did not have the Qt look and feel I had grown to like), so I started to write my own tool...