Quickstart Doxygen: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 27: Zeile 27:
! Tag !! Target !! Bedeutung !! Beispiel
! Tag !! Target !! Bedeutung !! Beispiel
|-
|-
| brief || Modul, Datei, Funktion || Kurzbeschreibung || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| brief || Modul, Datei, Funktion || Kurzbeschreibung || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @brief Berechnet die Summe von zwei Ganzzahlen
  * @brief Berechnet die Summe von zwei Ganzzahlen
*/ </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| details || Modul, Datei, Funktion || Ausführliche Beschreibung des Verhaltens || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| details || Modul, Datei, Funktion || Ausführliche Beschreibung des Verhaltens || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @brief Berechnet die Summe von zwei Ganzzahlen
  * @brief Berechnet die Summe von zwei Ganzzahlen
  * @details Diese Funktion nimmt zwei Integer als Eingabe und addiert diese zusammen und gibt ihre Summe zurück.
  * @details Diese Funktion nimmt zwei Integer als Eingabe und addiert diese zusammen und gibt ihre Summe zurück.
*/ </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| param || Parameter || Beschreibung des Funktionsparameters || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| param || Parameter || Beschreibung des Funktionsparameters || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @param a Der erste zu addierende Integer.
  * @param a Der erste zu addierende Integer.
  * @param b Der zweite zu addierende Integer.
  * @param b Der zweite zu addierende Integer.
/* </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| return || Funktion || Beschreibung des Rückgabewerts || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| return || Funktion || Beschreibung des Rückgabewerts || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @return Die Summe von a und b.
  * @return Die Summe von a und b.
*/ </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| retval || Funktion || Beschreibung möglicher Rückgabewerte || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| retval || Funktion || Beschreibung möglicher Rückgabewerte || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @retval 0 Erfolgreich.
  * @retval 0 Erfolgreich.
  * @retval -1 Fehlerhafte Eingabe.
  * @retval -1 Fehlerhafte Eingabe.
*/ </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| author || Modul, Datei, Funktion || Gibt den Autor des Codes an || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| author || Modul, Datei, Funktion || Gibt den Autor des Codes an || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @author Daniel Mustermann
  * @author Daniel Mustermann
/* </syntaxhighlight>
/* </syntaxhighlight>
|-
|-
| version || Modul, Datei, Funktion || Gibt die Versionsnummer des Codes an || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| version || Modul, Datei, Funktion || Gibt die Versionsnummer des Codes an || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @version 1.0
  * @version 1.0
*/ </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| see || Modul, Datei, Funktion || Gibt Verweise auf andere Funktionen oder Klassen an || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| see || Modul, Datei, Funktion || Gibt Verweise auf andere Funktionen oder Klassen an || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @see multiply()
  * @see multiply()
*/ </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| deprecated || Modul, Datei, Funktion || Markiert eine Funktion, Klasse oder Modul als veraltet || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| deprecated || Modul, Datei, Funktion || Markiert eine Funktion, Klasse oder Modul als veraltet || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @deprecated Diese Funktion wird in der nächsten Version entfernt
  * @deprecated Diese Funktion wird in der nächsten Version entfernt
*/ </syntaxhighlight>
*/ </syntaxhighlight>
|-
|-
| warning || Modul, Datei, Funktion || Fügt eine Warnung für den Benutzer hinzu || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| warning || Modul, Datei, Funktion || Fügt eine Warnung für den Benutzer hinzu || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @warning Diese Funktion darf nicht als Interrupt verwendet werden!
  * @warning Diese Funktion darf nicht als Interrupt verwendet werden!
/* </syntaxhighlight>
/* </syntaxhighlight>
|-
|-
| struct || Struktur || Beschreibt eine Struktur || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| struct || Struktur || Beschreibt eine Struktur || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @struct Point
  * @struct Point
  * @brief Stellt einen Punkt im 2D-Raum dar.
  * @brief Stellt einen Punkt im 2D-Raum dar.
Zeile 80: Zeile 91:
</syntaxhighlight>
</syntaxhighlight>
|-
|-
| union || Union || Beschreibt eine Union-Datenstruktur || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| union || Union || Beschreibt eine Union-Datenstruktur || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @union Data
  * @union Data
  * @brief Eine Union, die entweder einen Integer oder einen Float speichert.
  * @brief Eine Union, die entweder einen Integer oder einen Float speichert.
Zeile 91: Zeile 103:
</syntaxhighlight>
</syntaxhighlight>
|-
|-
| enum || Enum || Beschreibt eine Aufzählung || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small"> /**
| enum || Enum || Beschreibt eine Aufzählung || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
  * @enum Color
  * @enum Color
  * @brief Enumeration für Farben.
  * @brief Enumeration für Farben.
Zeile 100: Zeile 113:
     BLUE
     BLUE
};
};
</syntaxhighlight>
|-
| var || Klasse, Struktur || Dokumentiert eine Variable oder ein Datenmitglied || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
* @var int x
* @brief Die x-Koordinate des Punkts.
*/
int x;
</syntaxhighlight>
|-
|-
| Beispiel || Beispiel
| class || Klasse || Dokumentiert eine Klasse || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
* @class Shape
* @brief Abstrakte Klasse für Formen.
*/
</syntaxhighlight>
|-
|-
| Beispiel || Beispiel
| namespace || Beispiel
|-
|-
| Beispiel || Beispiel
| file || Datei || Gibt den Dateinamen an || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
* @file example.c
* @brief Diese Datei enthält Beispielcode.
*/
</syntaxhighlight>
|-
|-
| Beispiel || Beispiel
| ingroup || Code-Element || Ordnet Code zu Gruppen zusammen ||
|-
|-
| Beispiel || Beispiel
| def || Definition || Dokumentiert ein #define-Definition || <syntaxhighlight lang="cpp" style="border: none; background-color: #8f5e15; font-size:small">
/**
* @def PI
* @brief Wert der Zahl Pi.
*/
#define PI 3.14159
</syntaxhighlight>
|-
|-
| Beispiel || Beispiel
| todo || Modul, Datei, Funktion || Dokumentiert eine zukünftige Veränderung ||  
|-
|-
| Beispiel || Beispiel
| bug || Beispiel
|-
|-
| Beispiel || Beispiel
| test || Beispiel
|-
|-
| Beispiel || Beispiel
| namespace || Beispiel
|-
|-
| Beispiel || Beispiel
| dot || Beispiel
|}
|}


=== Schritt 5: Dokumentation generieren ===
=== Schritt 5: Dokumentation generieren ===
Am Schluss müssen Sie nur noch auf den Knopf "Fertig stellen" klicken und die Dokumentation sowie gegebenenfalls die Konfigurationsdatei wird erstellt
Am Schluss müssen Sie nur noch auf den Knopf "Fertig stellen" klicken und die Dokumentation sowie gegebenenfalls die Konfigurationsdatei wird erstellt

Version vom 18. Oktober 2024, 10:58 Uhr

Einleitung

Dieser Artikel soll eine Hilfe sein, beim erstellen oder aktualisieren von Dokumentationen von Quellcode mit Doxygen.

Was ist Doxygen

Anleitung

Schritt 1: Doxygen installieren

Als erstes sollten sie überprüfen, ob Doxygen schon installiert ist. Dafür können Sie zum Beispiel in der Windows-Suchleiste nach "Doxywizard" suchen. Sollten sie dieses Programm nicht haben, ist Doxygen nicht auf ihrem Gerät installiert.

Um Doxygen nun zu installieren, laden Sie sich hier die aktuelle Version herunter.


Schritt 2: Doxygen-Konfigurationsdatei erstellen

Um in Doxygen eine Konfigurationsdatei zu erstellen, müssen sie im Doxywizard auf den Reiter "Expert" umschalten.

Schritt 3: Konfigurationsdatei anpassen

Sollten Sie schon eine bestehende Konfigurationsdatei für ihr Doxygen Projekt haben, können Sie diese Anpassen in dem Sie sie über "File->Open" in Doxywizard laden und dann unter dem Reiter "Expert" anpassen.

Schritt 4: Kommentare in deinem Code hinzufügen

Kommentare in dem C-Code können einfach über das C-Projekt selber eingefügt werden. Es gibt allerdings Tags die Doxygen erkennt und diese anders verarbeitet.

C-Code Tags
Tag Target Bedeutung Beispiel
brief Modul, Datei, Funktion Kurzbeschreibung
/**
 * @brief Berechnet die Summe von zwei Ganzzahlen
*/
details Modul, Datei, Funktion Ausführliche Beschreibung des Verhaltens
/**
 * @brief Berechnet die Summe von zwei Ganzzahlen
 * @details Diese Funktion nimmt zwei Integer als Eingabe und addiert diese zusammen und gibt ihre Summe zurück.
*/
param Parameter Beschreibung des Funktionsparameters
/**
 * @param a Der erste zu addierende Integer.
 * @param b Der zweite zu addierende Integer.
*/
return Funktion Beschreibung des Rückgabewerts
/**
 * @return Die Summe von a und b.
*/
retval Funktion Beschreibung möglicher Rückgabewerte
/**
 * @retval 0 Erfolgreich.
 * @retval -1 Fehlerhafte Eingabe.
*/
author Modul, Datei, Funktion Gibt den Autor des Codes an
/**
 * @author Daniel Mustermann
/*
version Modul, Datei, Funktion Gibt die Versionsnummer des Codes an
/**
 * @version 1.0
*/
see Modul, Datei, Funktion Gibt Verweise auf andere Funktionen oder Klassen an
/**
 * @see multiply()
*/
deprecated Modul, Datei, Funktion Markiert eine Funktion, Klasse oder Modul als veraltet
/**
 * @deprecated Diese Funktion wird in der nächsten Version entfernt
*/
warning Modul, Datei, Funktion Fügt eine Warnung für den Benutzer hinzu
/**
 * @warning Diese Funktion darf nicht als Interrupt verwendet werden!
/*
struct Struktur Beschreibt eine Struktur
/**
 * @struct Point
 * @brief Stellt einen Punkt im 2D-Raum dar.
 */
struct Point {
    int x;
    int y;
};
union Union Beschreibt eine Union-Datenstruktur
/**
 * @union Data
 * @brief Eine Union, die entweder einen Integer oder einen Float speichert.
 */
union Data {
    int i;
    float f;
};
*/
enum Enum Beschreibt eine Aufzählung
/**
 * @enum Color
 * @brief Enumeration für Farben.
 */
enum Color {
    RED,
    GREEN,
    BLUE
};
var Klasse, Struktur Dokumentiert eine Variable oder ein Datenmitglied
/**
 * @var int x
 * @brief Die x-Koordinate des Punkts.
 */
int x;
class Klasse Dokumentiert eine Klasse
/**
 * @class Shape
 * @brief Abstrakte Klasse für Formen.
 */
namespace Beispiel
file Datei Gibt den Dateinamen an
/**
 * @file example.c
 * @brief Diese Datei enthält Beispielcode.
 */
ingroup Code-Element Ordnet Code zu Gruppen zusammen
def Definition Dokumentiert ein #define-Definition
/**
 * @def PI
 * @brief Wert der Zahl Pi.
 */
#define PI 3.14159
todo Modul, Datei, Funktion Dokumentiert eine zukünftige Veränderung
bug Beispiel
test Beispiel
namespace Beispiel
dot Beispiel

Schritt 5: Dokumentation generieren

Am Schluss müssen Sie nur noch auf den Knopf "Fertig stellen" klicken und die Dokumentation sowie gegebenenfalls die Konfigurationsdatei wird erstellt