Eine robuste und flexible Alternative zu Doxygen, die C++ unterstützt

Ich muss Dokumentation für ein C++-Projekt von mir generieren (und bald vielleicht auch für weitere). Bisher habe ich mich mit Doxygen befasst, und obwohl es beliebt zu sein scheint, hatte ich einige Probleme damit (auf deren Details ich hier nicht eingehen werde; einige wurden gelöst). Da ich ihm trotz seiner offensichtlichen Popularität nicht besonders zugetan bin, möchte ich einige Alternativen in Betracht ziehen.

Nun, vor 7 Jahren gab es auf StackOverflow genau dazu eine Frage:

Doxygen-Alternativen für C++

aber die Antworten sind inzwischen veraltet, also stelle ich dieselbe Frage hier und jetzt erneut.

Anforderungen:

  • Kostenlos
  • Gratis
  • Multiplattform, unterstützt mindestens Linux und Windows
  • Flexibel bis zu einem ähnlichen Niveau wie Doxygen oder mehr
  • Aktiv gepflegt
  • Nicht zu vernachlässigende Benutzerbasis
Wenn Sie "hier nicht ins Detail gehen", dann wird es schwierig, Ihnen zu helfen
@Mawg: Es war meistens das , aber das wird dir nicht viel helfen, denke ich ...
Aber das hat sich gelöst. Warum also nicht DoxyGen verwenden? Nur neugierig
@Mawg: Die Tatsache, dass es sich so verhielt, gab mir eine Ahnung, dass ich vielleicht etwas anderes haben wollte. Außerdem, warum sollte ich Doxygen verwenden, außer ich habe davon gehört? Es ist nicht so, dass ich positive Erfahrungen damit gemacht habe.
Warum es nicht wenigstens versuchen? Es gibt viele Leute da draußen, die das positiv sehen. Sie können nicht alle falsch liegen. Außerdem wurde es viele Jahre lang aktiv gepflegt und weiterentwickelt, und Dimitri ist sehr hilfreich. Da die Homepage mit „Doxygen ist das De-facto-Standardwerkzeug zum Generieren von Dokumentation aus annotierten C++-Quellen“ beginnt, ist es sicherlich einen Versuch wert. Und dass es weitergeht, „aber es unterstützt auch andere gängige Programmiersprachen, ist für mich ein großer Pluspunkt.
Aber warten Sie, Sie hatten ein Problem, das gelöst wurde, also haben Sie es vermutlich verwendet, um Dokumentation aus Ihrem Code zu generieren. Wenn Sie uns sagen können, welche spezifischen Funktionen fehlen, können wir versuchen, Ihnen zu helfen.
@Mawg: Wer hat gesagt, dass ich es nicht versuche? Ich will es einfach nicht nur mit Doxygen versuchen.
Probieren Sie dann andere und DoxyGen aus (wenn es hilft, gibt es wahrscheinlich einen Grund dafür, dass es der Industriestandard ist).
Da die bisher einzige vorgeschlagene Alternative Sphinx-Doc ist, werfen Sie einen Blick auf Was sind die Hauptunterschiede zwischen Sphinx und Doxygen? und Wikipedias Vergleich von Dokumentationsgeneratoren
Der Link stackoverflow.com ... gibt jetzt "Seite nicht gefunden" zurück. Da laufen die Admins etwas aus dem Ruder.
@TrevorBoydSmith: Die Frage wurde gelöscht, aber die Admis/Moderatoren dort hätten die Antworten hierher verschieben sollen. Vielleicht schaffen wir das?
@TrevorBoydSmith: Siehe meine neue Antwort ...
Was ist mit all den nutzlosen Kommentaren, ihm zu sagen, er solle Doxygen verwenden, wenn er sagte, er wolle Alternativen? +1 für einen weiteren nutzlosen Kommentar. Vielen Dank, dass Sie die Frage gestellt haben, und wtf, für die sie die andere Frage gelöscht haben

Antworten (3)

Persönlich würde ich dringend empfehlen, einen Blick auf Sphinx-Doc zu werfen , das für die Python-Dokumentation geschrieben wurde, aber auch auf andere Systeme anwendbar ist.

  • Erzeugt großartig aussehende Dokumente mit mehreren Themen in mehreren Formaten
  • Kann aus mehreren Programmiersprachen generieren, z. B. C++ mit der C++- Domäne
  • Kann in Build-Systeme wie Make, Jenkins usw. integriert werden.

Adressieren Sie Ihre Punkte:

  • Kostenlos Vollständig Open Source
  • Kostenlos Ja
  • Multiplattform, unterstützt mindestens Linux und Windows Ja Python-basiert, läuft also praktisch überall Multiplattform-Installationsanleitung
  • Flexibel auf einem ähnlichen Niveau wie doxygen oder mehr. Ja Persönlich finde ich es flexibler, da es eine Mischung aus automatisch generierter und vorab geschriebener Dokumentation in ReStructuredText ermöglicht.
  • Aktiv gewartet Ja Zum Zeitpunkt des Schreibens wurde Version 1.5.3 vor etwas mehr als einem Monat am 26.02.2017 veröffentlicht
  • Nicht zu vernachlässigende Benutzerbasis Ja - Read The Docs unterstützt es zu Beginn und viele Beispiele hier

Beachten Sie, dass Sie zum automatischen Generieren einer ansprechenden Dokumentation aus C/C++-Quellcode Sphinx für die Dokumentgenerierung mit doxyGen für die Informationsextraktion in XML kombinieren und als Brücke zwischen ihnen fungieren können .

Sphinx unterstützt keine automatisch generierten Dokumente für C oder C++. Das heißt, Sie müssen Ihre gesamte API und Dokumentation parallel zu Ihrem Code in ReST-Dateien verwalten. Großes Risiko für Tippfehler, Dinge, die nicht mehr synchron sind, etc.
@detly Informationen zur Breathe-Erweiterung hinzugefügt, die eine automatische Generierung über Doxygen aus dem Code ermöglicht.
Danke dafür, ich hatte das Atmen an anderer Stelle erwähnt, aber falsch verstanden, welche Rolle es hier spielte. Nach etwas mehr Recherche scheint es auch einige LLVM Clang-basierte Autogen-Plugins für Sphinx zu geben, die sich in der Entwicklung befinden, aber diese Lücke eventuell auch füllen könnten.

(Ich habe mehrere Antworten von der jetzt gelöschten StackOverflow-Frageseite gerettet :)

Doc++

Sie könnten DOC++ ausprobieren , aber es könnte noch hässlicher sein.

cldoc

Es gibt eine Open-Source-Alternative zu doxygen namens cldoc .

Es kann sowohl mit C als auch mit C++ umgehen und basiert auf Clang. Die interessantesten Funktionen, die es angeblich bietet:

  • Verwendet Clang, um selbst die komplexesten C++-Projekte ohne zusätzlichen Aufwand für den Benutzer robust zu analysieren.
  • Verwendet Markdown für die Dokumentationsformatierung.
  • Verwendet ein einfaches Format zum Dokumentieren Ihres Codes.
  • Unterstützt Querverweise in der Dokumentation.
  • Generiert eine einzelne Datei, eine Javascript-basierte Webanwendung zum Rendern der Dokumentation.
  • Blitzschnelle clientseitige Suche mit einem vorgenerierten Suchindex.

NaturalDocs

NaturalDocs hat seine Warzen, aber die Ausgabe ist anständig und das Markup ist mühelos.

NetBeans

Wenn Sie daran interessiert sind, ein großes Projekt zu verfolgen, würde ich die C++-Version von Netbeans vorschlagen, die dynamisch schöne Anrufdiagramme generieren kann (suchen Sie nach der Funktion „Show Call Graph“).

Doxypress

DoxyPress ist ein moderner Ersatz für Doxygen.

Es entspricht möglicherweise nicht Ihren Anforderungen, aber Standardesisch scheint erwähnenswert zu sein.

Ab 2022 scheinen nur Doxypress und Standardese Alternativen zu Doxygen zu sein, das für C ++ verbessert wurde. Doxpress ist ein Fork von Doxygen in Version 1.8.8, das darauf abzielt, auch andere Sprachen zu unterstützen.

Siehe GitHub-Seiten für die neuesten Aktivitäten:
Standard
Doxypress

Ich habe keinen von ihnen ausprobiert, daher ist jedes Feedback herzlich willkommen.

Bitte schreiben Sie etwas mehr darüber - wie es sich von Doxygen unterscheidet oder ihm ähnlich ist.
Ihre Antwort könnte durch zusätzliche unterstützende Informationen verbessert werden. Bitte bearbeiten Sie , um weitere Details wie Zitate oder Dokumentation hinzuzufügen, damit andere bestätigen können, dass Ihre Antwort richtig ist. Weitere Informationen zum Verfassen guter Antworten finden Sie in der Hilfe .
Willkommen bei den Softwareempfehlungen! Wenn es die Anforderungen nicht erfüllt, wie ist es dann eine Antwort? Und warum ist es erwähnenswert, wenn es nicht passt?
Es ist erwähnenswert, da ab 2022 nur Doxypress und Standardese Alternativen zu Doxygen zu sein scheinen, das für C++ verbessert wurde, wobei letzteres überhaupt nicht erwähnt wird. Fühlen Sie sich frei, den Beitrag zu verbessern oder basierend auf Ihrer Erfahrung eine neue Antwort zu erstellen.