65 votes

Alternative Doxygen pour C ++

Alors que doxygen semble bon lors de l'indexation d'un grand projet de C++, j'ai des principaux problèmes avec elle.

  1. La sortie générée est laid et mal organisé. Juste de trouver une fonction dans doxygen sites web est généralement une douleur.
  2. Lent redressement sur la recherche de balisage des erreurs. c'est à dire que j'ai de l'indice de l'ensemble de mon projet de de trouver, j'ai utilisé le mauvais de la syntaxe d'une fonction.
  3. Le balisage est laid... quelque chose avec markdown, restructuré texte, ou de certains humaine markup language serait mieux.

Est-il un outil comme ça avec un bon support du C++? Doxygen est de la capacité de l'indice de C++ est en fait très utile... c'est juste la façon dont il présente de l'information, et nécessite laide de balisage dans les commentaires qui est difficile à gérer.

35voto

Andy Dent Points 9852

Doxygen 1.8 a ajouté le support Markdown, comme décrit ici ! (Je sais que ce n'est pas une alternative mais c'est tellement gros que je voulais que ça se démarque des commentaires).

33voto

Wernight Points 6086

Vous pouvez essayer de DOC++ mais je crois que c'est encore plus laid. Votre meilleur choix pourrait être de modifier les paramètres de Doxygen:

  • Activer GraphViz (nice appel de diagrammes ou de graphiques UML si vous activez les interrupteurs)
  • Ajouter un en-tête / pied de page pour les pages
  • Utiliser CSS pour le style de la page
  • Générer CHM (fichier d'aide de Windows) qui comprend des index et de recherche

Certains commutateurs que vous pouvez être intéressé par:

  • Général
    • QT_AUTOBRIEF évite de taper @brief
    • OPTIMIZE_OUTPUT_FOR_C = NO
    • OPTIMIZE_OUTPUT_JAVA = NO
    • EXCLUDE pour éviter les moches, des fichiers ou des tiers à venir de la manière
  • Le Style du HTML
    • HTML_HEADER
    • HTML_FOOTER
    • HTML_STYLESHEET
  • Fichier d'aide CHM
    • CHM_FILE
  • GraphViz
    • HAVE_DOT
  • Graphiques
    • CLASS_DIAGRAMS
    • CLASS_GRAPH
    • UML_LOOK

11voto

bmu Points 7109

Sphinx prend en charge la documentation de projets C++ grâce à ses C++ domaine. Il utilise reStructuredText comme langage de balisage.

Sur le site:

Les caractéristiques suivantes sont présentes, beau travail et peut être vu "en action" dans le Python docs:

  • Formats de sorties: HTML (y compris les Windows HTML Help), LaTeX (pour imprimable version PDF), les pages de manuel, texte brut
  • Vaste de la croix-des références: le balisage sémantique et automatique des liens pour les fonctions, les classes, les citations, les termes du glossaire et des informations semblables
  • Structure hiérarchique: facile définition de l'arborescence du document, avec des liens automatiques vers des frères et sœurs, les parents et les enfants
  • Automatique indices: indice général, ainsi qu'un module d'index
  • Code de gestion: mise en évidence automatique à l'aide de la Pygments surligneur
  • Extensions: contrôle automatique de fragments de code, l'inclusion des docstrings de modules Python (API docs), et plus

7voto

Eric H. Points 1401

pour le point n ° 2: (Lent redressement sur la recherche de balisage des erreurs. c'est à dire que j'ai de l'indice de l'ensemble de mon projet de de trouver, j'ai utilisé le mauvais de la syntaxe d'une fonction.).....

Je viens de créer un script shell pour exécuter Doxygen sur un seul fichier à la fois, je peux courir à partir de l'intérieur de mon IDE, pour résoudre ce problème, afin que je puisse en permanence et de ré-exécuter et documenter un seul fichier.

En supposant que vous avez votre "Doxyfile" dans le répertoire courant, le script à exécuter sur juste "adding_doc.cpp" ressemblerait

cp Doxyfile tmp_doxy
echo INPUT = $1 >> tmp_doxy
doxygen tmp_doxy

appelé comme

dofile adding_doc.cpp

comment vous intégrer avec votre IDE est à vous (résolution de nom de fichier des variables, etc).

2voto

RP. Points 348

Si vous êtes intéressé par le traçage d'un grand projet, je suggérerais une version c ++ de Netbeans qui peut générer dynamiquement de beaux graphiques d'appel (recherchez la fonctionnalité 'Show Call Graph').

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X