summaryrefslogtreecommitdiffstats
path: root/VES5.0/doxygen-1.8.12/html/faq.html
blob: 3bbdb2fed76b20a26ec14d7e4bf4e1c0bef0ade9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: Frequently Asked Questions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen_manual.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('faq.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Frequently Asked Questions </div>  </div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#faq_index">How to get information on the index page in HTML?</a></li>
<li class="level1"><a href="#fac_al">Help, some/all of the members of my class / file / namespace are not documented?</a></li>
<li class="level1"><a href="#faq_extract_all">When I set EXTRACT_ALL to NO none of my functions are shown in the documentation.</a></li>
<li class="level1"><a href="#faq_ext_mapping">My file with a custom extension is not parsed (properly) (anymore).</a></li>
<li class="level1"><a href="#faq_code">How can I make doxygen ignore some code fragment?</a></li>
<li class="level1"><a href="#faq_code_inc">How can I change what is after the &lt;code&gt;#include&lt;/code&gt; in the class documentation?</a></li>
<li class="level1"><a href="#faq_chm">How can I use tag files in combination with compressed HTML?</a></li>
<li class="level1"><a href="#faq_html">I don&#39;t like the quick index that is put above each HTML page, what do I do?</a></li>
<li class="level1"><a href="#faq_html_header">The overall HTML output looks different, while I only wanted to use my own html header file</a></li>
<li class="level1"><a href="#faq_use_qt">Why does doxygen use Qt?</a></li>
<li class="level1"><a href="#faq_excl_dir">How can I exclude all test directories from my directory tree?</a></li>
<li class="level1"><a href="#faq_class">Doxygen automatically generates a link to the class MyClass somewhere in the running text.  How do I prevent that at a certain place?</a></li>
<li class="level1"><a href="#faq_pgm_X">My favorite programming language is X. Can I still use doxygen?</a></li>
<li class="level1"><a href="#faq_lex">Help! I get the cryptic message &quot;input buffer overflow, can&#39;t enlarge buffer because scanner uses REJECT&quot;</a></li>
<li class="level1"><a href="#faq_latex">When running make in the latex dir I get &quot;TeX capacity exceeded&quot;. Now what?</a></li>
<li class="level1"><a href="#faq_stl">Why are dependencies via STL classes not shown in the dot graphs?</a></li>
<li class="level1"><a href="#faq_search">I have problems getting the search engine to work with PHP5 and/or windows</a></li>
<li class="level1"><a href="#faq_cmdline">Can I configure doxygen from the command line?</a></li>
<li class="level1"><a href="#faq_name">How did doxygen get its name?</a></li>
<li class="level1"><a href="#faq_why">What was the reason to develop doxygen?</a></li>
</ul>
</div>
<div class="textblock"><h1><a class="anchor" id="faq_index"></a>
How to get information on the index page in HTML?</h1>
<p>You should use the <a class="el" href="commands.html#cmdmainpage">\mainpage</a> command inside a comment block like this: </p><pre class="fragment">/*! \mainpage My Personal Index Page
 *
 * \section intro_sec Introduction
 *
 * This is the introduction.
 *
 * \section install_sec Installation
 *
 * \subsection step1 Step 1: Opening the box
 *  
 * etc...
 */
</pre><h1><a class="anchor" id="fac_al"></a>
Help, some/all of the members of my class / file / namespace are not documented?</h1>
<p>Check the following: </p><ol>
<li>
Is your class / file / namespace documented? If not, it will not be extracted from the sources unless <a class="el" href="config.html#cfg_extract_all">EXTRACT_ALL</a> is set to <code>YES</code> in the config file. </li>
<li>
Are the members private? If so, you must set <a class="el" href="config.html#cfg_extract_private">EXTRACT_PRIVATE</a> to <code>YES</code> to make them appear in the documentation. </li>
<li>
<p class="startli">Is there a function macro in your class that does not end with a semicolon (e.g. MY_MACRO())? If so then you have to instruct doxygen's preprocessor to remove it.</p>
<p>This typically boils down to the following settings in the config file:</p>
<pre class="fragment">ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = MY_MACRO()=</pre><p class="endli">Please read the <a class="el" href="preprocessing.html">preprocessing</a> section of the manual for more information. </p>
</li>
</ol>
<h1><a class="anchor" id="faq_extract_all"></a>
When I set EXTRACT_ALL to NO none of my functions are shown in the documentation.</h1>
<p>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 <a class="el" href="commands.html#cmdfile">\file</a> (or <a class="el" href="commands.html#cmdfile">@file</a>) command.</p>
<p>Alternatively, you can put all members in a group (or module) using the <a class="el" href="commands.html#cmdingroup">\ingroup</a> command and then document the group using a comment block containing the <a class="el" href="commands.html#cmddefgroup">\defgroup</a> command.</p>
<p>For member functions or functions that are part of a namespace you should document either the class or namespace.</p>
<h1><a class="anchor" id="faq_ext_mapping"></a>
My file with a custom extension is not parsed (properly) (anymore).</h1>
<p>Doxygen only parses files that are specified as input (via the <a class="el" href="config.html#cfg_input">INPUT</a> tag) and that match a specified extension (mentioned in <a class="el" href="config.html#cfg_file_patterns">FILE_PATTERNS</a>) The list of files is then reduced by excluding files listed as <a class="el" href="config.html#cfg_exclude">EXCLUDE</a> or files that match the patterns set by <a class="el" href="config.html#cfg_exclude_patterns">EXCLUDE_PATTERNS</a>.</p>
<p>In the past doxygen parsed all files with an unknown extension as C files which could lead to undesired results. Since version 1.8.8, doxygen requires that you specify a mapping that tells for a certain file extension, which parser to use. This mapping is specified using the <a class="el" href="config.html#cfg_extension_mapping">EXTENSION_MAPPING</a> tag. If no mapping is specified the file's contents will be ignored.</p>
<h1><a class="anchor" id="faq_code"></a>
How can I make doxygen ignore some code fragment?</h1>
<p>The new and easiest way is to add one comment block with a <a class="el" href="commands.html#cmdcond">\cond</a> command at the start and one comment block with a <a class="el" href="commands.html#cmdendcond">\endcond</a> command at the end of the piece of code that should be ignored. This should be within the same file of course.</p>
<p>But you can also use doxygen's preprocessor for this: If you put </p><pre class="fragment">#ifndef DOXYGEN_SHOULD_SKIP_THIS

 /* code that must be skipped by doxygen */

#endif /* DOXYGEN_SHOULD_SKIP_THIS */
</pre><p> around the blocks that should be hidden and put: </p><pre class="fragment">  PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
</pre><p> in the config file then all blocks should be skipped by doxygen as long as <a class="el" href="config.html#cfg_enable_preprocessing">ENABLE_PREPROCESSING</a> is set to <code>YES</code>.</p>
<h1><a class="anchor" id="faq_code_inc"></a>
How can I change what is after the &lt;code&gt;#include&lt;/code&gt; in the class documentation?</h1>
<p>In most cases you can use <a class="el" href="config.html#cfg_strip_from_inc_path">STRIP_FROM_INC_PATH</a> to strip a user defined part of a path.</p>
<p>You can also document your class as follows</p>
<pre class="fragment">/*! \class MyClassName include.h path/include.h
 *
 *  Docs for MyClassName
 */
</pre><p>To make doxygen put <br />
<br />
 <code> #include &lt;path/include.h&gt; </code></p>
<p>in the documentation of the class MyClassName regardless of the name of the actual header file in which the definition of MyClassName is contained.</p>
<p>If you want doxygen to show that the include file should be included using quotes instead of angle brackets you should type: </p><pre class="fragment">/*! \class MyClassName myhdr.h "path/myhdr.h"
 *
 *  Docs for MyClassName
 */
</pre><h1><a class="anchor" id="faq_chm"></a>
How can I use tag files in combination with compressed HTML?</h1>
<p>If you want to refer from one compressed HTML file <code>a.chm</code> to another compressed HTML file called <code>b.chm</code>, the link in <code>a.chm</code> must have the following format: </p><pre class="fragment">&lt;a href="b.chm::/file.html"&gt;
</pre><p> Unfortunately this only works if both compressed HTML files are in the same directory.</p>
<p>As a result you must rename the generated <code>index.chm</code> files for all projects into something unique and put all <code>.chm</code> files in one directory.</p>
<p>Suppose you have a project <em>a</em> referring to a project <em>b</em> using tag file <code>b.tag</code>, then you could rename the <code>index.chm</code> for project <em>a</em> into <code>a.chm</code> and the <code>index.chm</code> for project <em>b</em> into <code>b.chm</code>. In the configuration file for project <em>a</em> you write: </p><pre class="fragment">TAGFILES = b.tag=b.chm::
</pre><h1><a class="anchor" id="faq_html"></a>
I don't like the quick index that is put above each HTML page, what do I do?</h1>
<p>You can disable the index by setting <a class="el" href="config.html#cfg_disable_index">DISABLE_INDEX</a> to <code>YES</code>. Then you can put in your own header file by writing your own header and feed that to <a class="el" href="config.html#cfg_html_header">HTML_HEADER</a>.</p>
<h1><a class="anchor" id="faq_html_header"></a>
The overall HTML output looks different, while I only wanted to use my own html header file</h1>
<p>You probably forgot to include the stylesheet <code>doxygen.css</code> that doxygen generates. You can include this by putting </p><pre class="fragment">&lt;LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"&gt;
</pre><p> in the HEAD section of the HTML page.</p>
<h1><a class="anchor" id="faq_use_qt"></a>
Why does doxygen use Qt?</h1>
<p>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.</p>
<p>The GUI front-end doxywizard uses Qt for... well... the GUI!</p>
<h1><a class="anchor" id="faq_excl_dir"></a>
How can I exclude all test directories from my directory tree?</h1>
<p>Simply put an exclude pattern like this in the configuration file:</p>
<pre class="fragment">EXCLUDE_PATTERNS = */test/*
</pre><h1><a class="anchor" id="faq_class"></a>
Doxygen automatically generates a link to the class MyClass somewhere in the running text.  How do I prevent that at a certain place?</h1>
<p>Put a % in front of the class name. Like this: %MyClass. Doxygen will then remove the % and keep the word unlinked.</p>
<h1><a class="anchor" id="faq_pgm_X"></a>
My favorite programming language is X. Can I still use doxygen?</h1>
<p>No, not as such; doxygen needs to understand the structure of what it reads. If you don't mind spending some time on it, there are several options:</p><ul>
<li>If the grammar of X is close to C or C++, then it is probably not too hard to tweak src/scanner.l a bit so the language is supported. This is done for all other languages directly supported by doxygen (i.e. Java, IDL, C#, PHP).</li>
<li>If the grammar of X is somewhat different than you can write an input filter that translates X into something similar enough to C/C++ for doxygen to understand (this approach is taken for VB, Object Pascal, and Javascript, see <a href="http://www.stack.nl/~dimitri/doxygen/download.html#helpers">http://www.stack.nl/~dimitri/doxygen/download.html#helpers</a>).</li>
<li>If the grammar is completely different one could write a parser for X and write a backend that produces a similar syntax tree as is done by src/scanner.l (and also by src/tagreader.cpp while reading tag files).</li>
</ul>
<h1><a class="anchor" id="faq_lex"></a>
Help! I get the cryptic message "input buffer overflow, can't enlarge buffer because scanner uses REJECT"</h1>
<p>This error happens when doxygen's lexical scanner has a rule that matches more than 256K of input characters in one go. I've seen this happening on a very large generated file (&gt;256K lines), where the built-in preprocessor converted it into an empty file (with &gt;256K of newlines). Another case where this might happen is if you have lines in your code with more than 256K characters.</p>
<p>If you have run into such a case and want me to fix it, you should send me a code fragment that triggers the message. To work around the problem, put some line-breaks into your file, split it up into smaller parts, or exclude it from the input using EXCLUDE.</p>
<h1><a class="anchor" id="faq_latex"></a>
When running make in the latex dir I get "TeX capacity exceeded". Now what?</h1>
<p>You can edit the texmf.cfg file to increase the default values of the various buffers and then run "texconfig init".</p>
<h1><a class="anchor" id="faq_stl"></a>
Why are dependencies via STL classes not shown in the dot graphs?</h1>
<p>Doxygen is unaware of the STL classes, unless the option <a class="el" href="config.html#cfg_builtin_stl_support">BUILTIN_STL_SUPPORT</a> is turned on.</p>
<h1><a class="anchor" id="faq_search"></a>
I have problems getting the search engine to work with PHP5 and/or windows</h1>
<p>Please read <a href="searchengine.html">this</a> for hints on where to look.</p>
<h1><a class="anchor" id="faq_cmdline"></a>
Can I configure doxygen from the command line?</h1>
<p>Not via command line options, but doxygen can read from <code>stdin</code>, so you can pipe things through it. Here's an example how to override an option in a configuration file from the command line (assuming a UNIX like environment):</p>
<pre class="fragment">( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen -
</pre><p>For Windows the following would do the same:</p>
<pre class="fragment">( type Doxyfile &amp; echo PROJECT_NUMBER=1.0 ) | doxygen.exe -
</pre><p>If multiple options with the same name are specified then doxygen will use the last one. To append to an existing option you can use the += operator.</p>
<h1><a class="anchor" id="faq_name"></a>
How did doxygen get its name?</h1>
<p>Doxygen got its name from playing with the words documentation and generator.</p>
<pre class="fragment">documentation -&gt; docs -&gt; dox
generator -&gt; gen
</pre><p>At the time I was looking into <code>lex</code> and <code>yacc</code>, where a lot of things start with "yy", so the "y" slipped in and made things pronounceable (the proper pronouncement is Docs-ee-gen, so with a long "e").</p>
<h1><a class="anchor" id="faq_why"></a>
What was the reason to develop doxygen?</h1>
<p>I once wrote a GUI widget based on the Qt library (it is still available at <a href="http://sourceforge.net/projects/qdbttabular/">http://sourceforge.net/projects/qdbttabular/</a> but hasn't been updated since 2002). Qt had nicely generated documentation (using an internal tool which <a href="http://rant.gulbrandsen.priv.no/udoc/history">they didn't want to release</a>) 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...</p>
<p> 
Go to the <a href="trouble.html">next</a> section or return to the
 <a href="index.html">index</a>.
 </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>