2015-01-16 5 views
6

Ho due file sorgente C. Un commento a una funzione bar() nel file A deve fare riferimento a una funzione foo() nel file B. Come posso creare questo link?Inserisci il link per funzionare in un altro file con Doxygen?

ho provato:

  1. scrivendo qualcosa come: B.c::foo() sperando che doxygen sarebbe andato a depositare B e trovare la funzione foo lì.

  2. Anche provato semplicemente ::foo() ma quello non ha aiutato.

  3. Poi ho provato dando file di B.c un nometag speciale come nel fare //! @file specialtag sulla prima linea della B.c e poi facendo specialtag::foo() nel mio commento, ma non è cambiato molto.

  4. Ho provato a forzare il collegamento con \ref e \link ma anche quello non ha aiutato.

La linea //! @file è presente sia A.c e B.c così doxygen deve essere a conoscenza del codice.

EDIT

ho provato quello che @doxygen suggerito, ma senza fortuna. Ho fatto un esempio di progetto per mostrare dove mi imbatto in problemi, è qui: http://www.filedropper.com/testdoxygen2tar

Ho usato il file di installazione di default, realizzato con doxygen -g. L'uscita sto ottenendo: Firefox showing the page generated by doxygen

Si può vedere che la funzione foobar non viene collegato.

EDIT 2

trovato il problema. La funzione foo non è stata documentata e quindi non è stata generata alcuna pagina per essa, quindi ovviamente doxygen non aveva pagine a cui collegarsi. (Stavo generando documentazione con l'opzione SOURCE_BROWSER abilitata e sperando che venisse generato un collegamento alla definizione della funzione)

+0

Il meglio che posso pensare è solo un collegamento al file, con una nota BOLD che dice all'utente di guardare la funzione quando arrivano. È possibile eseguire il collegamento automatico o utilizzare @see.Mi dispiace che questo non sia di grande aiuto. Mi piacerebbe conoscere la risposta me stesso. Se non hai fortuna qui, allora forse devi registrarti e postare la tua domanda alla mailing list degli utenti di DoxyGen? – Mawg

risposta

5

Questo è piuttosto semplice. Ecco un esempio minimo che funziona con un file di configurazione di default (doxygen -g):

Innanzitutto creare foo.c file con i seguenti contenuti:

/** @file */ 

/** Function foo, see also bar(). */ 
void foo() 
{ 
} 

quindi creare bar.c file con i seguenti contenuti:

/** @file */ 

/** Function bar, see also foo(). */ 
void bar() 
{ 
} 

Eseguire doxygen e osservare nell'output HTML che entrambe le funzioni avranno un collegamento con l'altra funzione.

+0

Ho risolto il problema. Stavo generando la documentazione con l'opzione 'SOURCE_BROWSER' abilitata e speravo che un nome di funzione mi avrebbe portato alla sua definizione di origine. – user10607

+1

È possibile impostare EXTRACT_ALL su SÌ se si desidera che i segnaposto si colleghino senza documentare la funzione. – doxygen

+0

Cosa succede se le due funzioni hanno lo stesso nome? – beaver

Problemi correlati