2011-01-19 46 views
3

我想了解一個相當大的C++項目的源代碼。源代碼不是用IDE寫的,所以我沒有「goto」按鈕直接進入函數定義。在C++中使用調用查找函數定義

例如:

srand(); 

我想搞清楚究竟在何處函數srand()函數的定義。

我能想出的唯一方法是手動檢查所有頭文件包括遞歸地查找聲明和定義的相應文件。

這是一個linux環境,源代碼用g ++編譯(使用cmake)。

+5

最簡單的事情可能是在現代IDE中進行編譯,除非獲取瀏覽信息。 – 2011-01-19 06:58:59

回答

4

查看ctags程序。

ctags生成一個文件,其中包含代碼中使用每個標識符的位置信息。然後可以使用您選擇的編輯器的插件,這將允許您跳轉到任何標識符的定義。 (非常成熟的Vim和​​Emacs存在ctags插件,可能也適用於大多數其他流行的編輯器。)

2

如果您使用的是VI,您可以在手冊頁中打開它,如果此字有一個。我相信它自動設置爲在男人(3)搜索,但我不是100%確定。至少這樣你可以知道它是否是系統功能。

另一種選擇是使用Doxygen設置調用圖並讓它生成源代碼(即使沒有評論)。通過調用圖,您可以輕鬆地從每個功能的來源中找出問題。