Ich habe #define
-Werte in Kopfzeilen, die Doxygen sicher dokumentieren möchte, aber ich habe andere in C Dateien, die ich als statische Konstanten behandle, und ich möchte nicht, dass Doxygen sie dokumentiert. Etwas so einfach und dumm wie
Wie kann ich Doxygen davon abhalten, diese #define
s in die erstellte Dokumentation einzufügen? Ich habe versucht, es mit @internal
zu markieren, aber das schien nicht zu helfen.
Eine etwas verwandte Frage zu Doxygen und #define
, wie bekomme ich:
um "SOME_CONSTANT" und "Eine Erklärung", aber nicht "1234" in die Ausgabe zu schreiben?
Sie müssen die Befehle \cond
und \endcond
nicht verwenden. Sie können den Initialisierer ausblenden, indem Sie einfach den Befehl \hideinitializer
verwenden:
Bezüglich der ersten Frage können Sie HIDE_UNDOC_MEMBERS = YES
setzen und nur die Makros, die einen Doxygen-Dokumentationsblock haben, werden in der Ausgabe angezeigt.
Sie möchten nur dokumentieren, was in den .h
-Dateien deklariert ist. Ich gehe davon aus, dass Sie alle statischen Funktionen und Variablen als static
in Ihren .c
-Dateien deklarieren. Alle übrigen werden in .h
entsprechenden Dateien ebenfalls deklariert. Dies sind Ihre "öffentlichen" Mitglieder.
Was ich in diesem Fall gerne tue, und ich glaube, dass Doxygen eher dazu gedacht war, auf diese Weise benutzt zu werden, ist:
Doxyfile
, legen Sie EXTRACT_ALL = NO
fest und fügen Sie das Verzeichnis hinzu Wo Ihre .h
-Dateien sind INPUT
/** \file */
allen Ihren .h
-Dateien hinzu (aber nicht Ihre .c
-Dateien). Dadurch wird nur das indiziert, was in Ihren .h
-Dateien enthalten ist. Sie können das Verzeichnis, das Ihre .c
Dateien enthält, trotzdem zu INPUT
hinzufügen, und Sie werden nach zusätzlicher Dokumentation für Ihre "public" Mitglieder durchsucht ...
Es wird zweifellos immer noch laut und unnatürlich erscheinen, aber um Ihre andere Frage zu beantworten, versuchen Sie:
%Vor%Ich habe dieses Problem gelöst, indem ich meine Dokumentation aus der .c-Datei in die .h-Datei verschoben habe. Führen Sie dann doxygen nur für die .h-Datei aus.
Dann sind die Elemente, die ich dokumentieren möchte (die 'öffentlichen' Elemente), intrinsisch, was Doxygen aufnimmt.
Da ich zuvor darauf geachtet habe, öffentliche Elemente in die .h-Datei und "private" Elemente in die .c-Datei zu stellen, funktioniert das sehr gut.
Diese Technik kam mir in den Sinn, als ich bemerkte, dass Doxygen die Includes einzog. Es fiel mir auf, dass, wenn ich auch die Untermenge von Includes verschieben würde, die das aufrufende Modul mein Modul verwenden müsste, diese Liste ebenfalls dokumentiert wäre.
Diese Technik hat einen zusätzlichen Vorteil: Ich kann die Dokumentation in ein Terminalfenster und die Quelle in ein anderes Terminalfenster legen, während ich die Dokumentation aktualisiere.
Tags und Links c doxygen c-preprocessor