2015-01-16 93 views
6

我有兩個C源文件。對文件A中功能bar()的評論需要參考文件B中的功能foo()。我怎樣才能使這個鏈接?用Doxygen插入鏈接到另一個文件中的功能?

我想:

  1. 寫是這樣的:B.c::foo()希望的doxygen會去到文件B和發現功能foo那裏。

  2. 也試過簡單::foo()但這並沒有幫助。

  3. 然後我試圖給文件B.c一個特殊的標記名上的B.c第一線做//! @file specialtag,然後在我的評論做specialtag::foo()但沒有太大改變。

  4. 我試圖強制鏈接\ref\link,但即使這樣也沒有幫助。

//! @file線存在於兩者A.cB.c所以doxygen的應該知道的代碼。

編輯

我想提出什麼@doxygen,但沒有運氣。我做了一個示例項目,以顯示出現問題的位置,其中包括:http://www.filedropper.com/testdoxygen2tar

我使用的默認安裝文件是doxygen -g。 我得到的輸出: Firefox showing the page generated by doxygen

您可以看到foobar函數未被鏈接到。

編輯2

發現這個問題。函數foo沒有記錄,因此沒有生成頁面,所以當然doxygen沒有頁面鏈接。 (我正在生成文檔,啓用了SOURCE_BROWSER選項並希望生成到函數定義的鏈接)

+0

我能想到的最好的方法就是鏈接到文件,用大膽的提示告訴用戶在他們到達時查看功能。您可以自動鏈接,或使用@see。對不起,這沒有太大的幫助。我想自己知道答案。如果在這裏沒有運氣,那麼也許註冊併發布您的問題到DoxyGen用戶郵件列表? – Mawg

回答

5

這非常簡單。下面是一個默認的配置文件工作的小例子(doxygen -g):

首先創建一個包含以下內容foo.c文件:

/** @file */ 

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

然後創建一個包含以下內容的文件bar.c:

/** @file */ 

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

運行doxygen並在HTML輸出中觀察到兩個函數都會鏈接到另一個函數。

+0

我解決了這個問題。我在啓用'SOURCE_BROWSER'選項的情況下生成了文檔,並希望函數名稱能夠將我帶入其源定義。 – user10607

+1

如果您希望佔位符鏈接到不記錄該功能,則可以將EXTRACT_ALL設置爲YES。 – doxygen

+0

如果這兩個函數具有相同的名稱會怎麼樣? – beaver

相關問題