2017-10-19 19 views
0

Exécution doxygen pourRéférencement d'un membre struct dans la documentation en utilisant doxygen ne fonctionnant pas; membre struct ne figurant pas dans la documentation

namespace BV 
{ 
namespace Data 
{ 
typedef struct Station { 
    uint offsetId;    //! The ID of a station is generated by adding an offset to a base (example: 1000) 
    uint id;     //! The ID of the station (see {@link Station.offsetId} for more details) 
    QString name;    //! Name of the station 
    QStringList lineSwitches; //! A list of available lines the passanger can switch to from the station 
} Station; 


... 
} 
} 

retours d'avertissement

/home/USER/Projects/HelloWorld/src/csvparser.h:16: avertissement: incapable de résoudre lien vers `Station.offsetId » pour une commande \ link

au départ, je n'avais offsetId au lieu de Station.offsetId mais après avoir regardé en ligne, j'ai vu un tas d'exemples (y compris ici sur le SO) qui wer e décrivant cela comme étant le chemin. D'ailleurs je veux aussi référencer ce membre dans d'autres parties de mon en-tête.

Non seulement je reçois l'avertissement ci-dessus mais je juste pris un coup d'œil à la documentation HTML généré pour ma structure et ma grande surprise, il était même pas là:

Attributs publics

uint id

The ID of a station is generated by adding an offset to a base (example: 1000) 

QString nom

The ID of the station (see **Station.offsetId** for more details) 

QStringList lineSwitches

Name of the station. 

Le Station.offsetId est juste un lien cassé.

+0

. Veuillez jeter un oeil à "Mettre la documentation après les membres" dans la documentation et changer //! En //! albert

+0

Ah , tirer. J'ai complètement oublié le '<'. En ce qui concerne le '{@link ...}' - je suis habitué depuis quand j'ai commencé à utiliser doxygen. Puis j'ai eu un long écart et maintenant j'ai recommencé. Je vais regarder dans vos deux suggestions. – rbaleksandar

+0

Cela fonctionne comme un charme. Pouvez-vous poster votre commentaire comme une réponse pour que je puisse l'approuver. De même, la commande {@command ...} 'est rare pour la documentation de doxygen, même pour' @ link'. Je suppose que ce sont les accolades qui créent une sorte de portée. Sinon, le '@ endlink' est attendu. Mais je vais essayer d'utiliser '@ ref' à la place. – rbaleksandar

Répondre

0

La documentation indiquée dans la question utilise //! en tant que chaînes de commentaires, elle est destinée à être utilisée par le membre. Lorsque vous avez la documentation après le membre, vous devez utiliser //!<. Voir aussi "Mettre la documentation après les membres" dans le manuel doxygen.

En deuxième partie, il est pas nécessaire d'utiliser:. {@link Station.offsetId} (en fait \link devrait aussi avoir un \endlink mieux est d'utiliser \ref ou # par exemple \ref Station.offsetId ou #offsetId ou \ref offsetId ou (ce cas), juste Station.offsetId