2015-01-16 10 views
6

Ich habe zwei C-Quelldateien. Ein Kommentar zu einer Funktion bar() in Datei A muss sich auf eine Funktion foo() in Datei B beziehen. Wie kann ich diesen Link erstellen?Link einfügen, um in einer anderen Datei mit Doxygen zu funktionieren?

Ich habe versucht:

  1. Schreiben so etwas wie: B.c::foo() dass doxygen der Hoffnung gehen würde, um B und finden foo dort Funktion Datei.

  2. Auch versucht einfach ::foo(), aber das hat nicht geholfen.

  3. Dann habe ich versucht Datei B.c eine spezielle tagname wie dabei //! @file specialtag auf erste Zeile B.c geben und dann specialtag::foo() in meinem Kommentar zu tun, aber nicht viel geändert hat.

  4. Ich versuchte, die Verbindung mit \ref und \link zu erzwingen, aber selbst das half nicht.

Die //! @file Linie ist in beiden A.c und B.c so doxygen des Codes bewusst sein sollten.

EDIT

versuchte ich, was @doxygen vorgeschlagen, aber ohne Glück. Ich machte ein Beispielprojekt, um zu zeigen, wo ich in Probleme laufe, sein hier: http://www.filedropper.com/testdoxygen2tar

Ich benutzte die Standardeinstellungsdatei, die mit doxygen -g gemacht wurde. Der Ausgang, den ich bekomme: Firefox showing the page generated by doxygen

Sie können sehen, dass die Foobar-Funktion nicht verknüpft ist.

EDIT 2

das Problem gefunden. Die Funktion foo war undokumentiert und daher wurde keine Seite generiert, also hatte doxygen natürlich keine Seite zum verlinken. (Ich erzeugte Dokumentation mit der aktivierten SOURCE_BROWSER Option und hoffte, dass eine Verbindung zur Funktionsdefinition erzeugt würde)

+0

Das Beste, was ich mir vorstellen kann, ist nur ein Link zu der Datei, mit einer FETTEN Notiz, die den Benutzer anweist, sich die Funktion anzuschauen, wenn sie da sind. Sie können eine automatische Verbindung herstellen oder @see verwenden.Tut mir leid, dass das nicht viel hilft. Ich würde gerne die Antwort selbst wissen. Wenn Sie hier kein Glück haben, vielleicht, um sich zu registrieren und Ihre Frage an die DoxyGen-Benutzer-Mailingliste zu senden? – Mawg

Antwort

5

Dieses ist ziemlich direkt. Hier ist ein minimales Beispiel, das mit einer Standard-Konfigurationsdatei arbeitet (doxygen -g):

Erste Datei foo.c mit folgendem Inhalt:

/** @file */ 

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

dann Datei bar.c mit folgendem Inhalt:

/** @file */ 

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

Führen Sie doxygen und beobachten Sie in der HTML-Ausgabe, dass beide Funktionen einen Link zu der anderen Funktion haben werden.

+0

Ich löste das Problem. Ich habe die Dokumentation mit aktivierter Option 'SOURCE_BROWSER' erzeugt und hoffte, dass ein Funktionsname mich zu seiner Quelldefinition führen würde. – user10607

+1

Sie können EXTRACT_ALL auf YES setzen, wenn Platzhalter verlinkt werden sollen, ohne die Funktion zu dokumentieren. – doxygen

+0

Was ist, wenn die beiden Funktionen denselben Namen haben? – beaver